为了账号安全,请及时绑定邮箱和手机立即绑定

使用pandas.DataFrame中的复杂条件进行选择

使用pandas.DataFrame中的复杂条件进行选择

慕斯王 2019-07-23 16:51:53
使用pandas.DataFrame中的复杂条件进行选择例如,我有简单的DF:import pandas as pdfrom random import randint df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],                    'B': [randint(1, 9)*10 for x in xrange(10)],                    'C': [randint(1, 9)*100 for x in xrange(10)]})我可以使用Pandas的方法和习语从“A”中选择“B”的相应值大于50,“C” - 不等于900的值吗?
查看完整描述

3 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

另一种解决方案是使用查询方法:


import pandas as pd


from random import randint

df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],

                   'B': [randint(1, 9) * 10 for x in xrange(10)],

                   'C': [randint(1, 9) * 100 for x in xrange(10)]})

print df


   A   B    C

0  7  20  300

1  7  80  700

2  4  90  100

3  4  30  900

4  7  80  200

5  7  60  800

6  3  80  900

7  9  40  100

8  6  40  100

9  3  10  600


print df.query('B > 50 and C != 900')


   A   B    C

1  7  80  700

2  4  90  100

4  7  80  200

5  7  60  800

现在,如果要更改A列中的返回值,可以保存其索引:


my_query_index = df.query('B > 50 & C != 900').index

....并用它.iloc来改变它们,即:


df.iloc[my_query_index, 0] = 5000


print df


      A   B    C

0     7  20  300

1  5000  80  700

2  5000  90  100

3     4  30  900

4  5000  80  200

5  5000  60  800

6     3  80  900

7     9  40  100

8     6  40  100

9     3  10  600


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 1408 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信