python dataframe 列名_Python使用列名列表为Dataframe编制索引

您只需使用all,同时获取布尔索引中列的子集。在df[(df[['a', 'c', 'f']] > single_val).all(1)]

对于问题的第二部分,假设您希望使用实际的Pandas语法,而不是一些query魔术,我认为您的方法看起来不错。在

^{pr2}$

通过“query魔术”,我指的是做类似的事情>>> conditions = [('a', '>', '1'), ('c', '<=', '2'), ('f', '

>>> query_s = ' & '.join('({0} {1} @val_{2})'.format(*ops) for ops in conditions)

>>> df.query(query_s)

a b c d e f g

1 0.838162 0.695019 0.564764 0.510963 0.556313 0.800921 0.698653

除非我有充分的理由,否则我个人会避免的。在

演示>>> df

a b c d e f g

0 0.328940 0.411345 0.369318 0.388301 0.213110 0.951961 0.623183

1 0.838162 0.695019 0.564764 0.510963 0.556313 0.800921 0.698653

2 0.507048 0.729398 0.814790 0.968008 0.803806 0.355858 0.987389

3 0.402825 0.615113 0.965653 0.223877 0.537247 0.935251 0.402023

4 0.133080 0.641351 0.539981 0.704075 0.539326 0.778625 0.161530

5 0.916859 0.977980 0.954934 0.146030 0.003589 0.889590 0.071854

6 0.655720 0.836904 0.881695 0.423626 0.732105 0.472120 0.646313

7 0.925715 0.522039 0.107891 0.513302 0.688067 0.909862 0.161232

8 0.444260 0.345057 0.872849 0.859115 0.552067 0.173852 0.826250

9 0.301961 0.090283 0.143682 0.765601 0.398364 0.589366 0.177203

>>> df[(df[['a', 'c', 'f']] > single_val).all(1)]

a b c d e f g

1 0.838162 0.695019 0.564764 0.510963 0.556313 0.800921 0.698653

5 0.916859 0.977980 0.954934 0.146030 0.003589 0.889590 0.071854

>>> df[(df.a > val_1) & (df.c <= val_2) & (df.f < val_3)]

a b c d e f g

1 0.838162 0.695019 0.564764 0.510963 0.556313 0.800921 0.698653

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值