例如,我有简单的DF:
将熊猫作为pd导入
从随机导入randint
df=pd.DataFrame({'A':[randint(1,9)表示xrange(10)中的x],
‘B’:[randint(1,9)*10表示x范围内的x(10)],
'C':[randint(1,9)*100表示x范围内的x(10)])
我是否可以使用熊猫的方法和习惯用法,从“A”中选择“B”对应值大于50的值,以及“C”对应值不等于900的值
当然!设置:
>&燃气轮机&燃气轮机;作为pd进口熊猫
&燃气轮机&燃气轮机&燃气轮机;从随机导入randint
&燃气轮机&燃气轮机&燃气轮机;df=pd.DataFrame({'A':[randint(1,9)表示范围(10)中的x],
‘B’:[randint(1,9)*10表示范围(10)内的x],
'C':[randint(1,9)*100表示范围(10)]内的x)
&燃气轮机&燃气轮机&燃气轮机;df
A、B、C
0 9 40 300
1 9 70 700
2 5 70 900
3 8 80 900
4 7 50 200
5 9 30 900
6 2 80 700
7 2 80 400
8 5 80 300
9 7 70 800
我们可以应用列操作并获取布尔系列对象:
>&燃气轮机&燃气轮机;df[“B”]>;50
0错误
1正确
2正确
3正确
4错误
5错误
6正确
7正确
8正确
9正确
姓名:B
&燃气轮机&燃气轮机&燃气轮机;(df[“B”]>;50)和;(df[“C”]==900)
0错误
1错误
2正确
3正确
4错误
5错误
6错误
7错误
8错误
9错误
[更新,切换到新样式.loc]:
然后我们可以用这些索引到对象中。对于读取访问,您可以链接索引:
>&燃气轮机&燃气轮机;df[“A”][(df[“B”]>;50)&;(df[“C”]=900)]
2 5
3 8
名称:A,数据类型:int64
但是,由于视图和副本之间的差异,您可能会遇到麻烦,因为这样做是为了进行写访问。您可以改用.loc:
>&燃气轮机&燃气轮机;df.loc[(df[“B”]>;50)&;(df[“C”]==900),“A”]
2 5
3 8
名称:A,数据类型:int64
&燃气轮机&燃气轮机&燃气轮机;df.loc[(df[“B”]>;50)和(df[“C”]==900),“A”]值
数组([5,8],dtype=int64)
&燃气轮机&燃气轮机&燃气轮机;df.loc[(df[“B”]>;50)&;(df[“C”]==900),“A”]*=1000
&燃气轮机&燃气轮机&燃气轮机;df
A、B、C
0 9 40 300
1 9 70 700
2 5000 70 900
3 8000 80 900
4 7 50 200
5 9 30 900
6 2 80 700
7 2 80 400
8 5 80 300
9 7 70 800
请注意,我无意中键入了==900,而不是!=900,或~(df[“C”]==900),但我太懒了,无法修复它。读者练习:^)