例如,我有一个简单的DF:
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)]})
我能用熊猫的方法和习语从“A”中选择“B”的对应值大于50的值,以及“C”的对应值不等于900的值吗?
另一种解决方案是使用query方法:
现在,如果要更改A列中的返回值,可以保存它们的索引:
……并使用
.iloc
更改它们,即:记住要用括号!
记住
&
运算符优先于>
或<
等运算符,这就是为什么计算结果为
False
。因此,如果使用pd.loc
,则需要在逻辑语句周围加上括号,否则会出现错误。这就是为什么:而不是
会导致
当然!设置:
我们可以应用列操作并获取布尔序列对象:
[更新,切换到新样式
.loc
]:然后我们可以使用这些索引到对象中。对于读取访问,可以链接索引:
但是,由于视图和副本之间的差异,您可能会遇到麻烦,因为这样做是为了进行写访问。您可以使用
.loc
代替:请注意,我意外地键入了
== 900
,而不是!= 900
,或者~(df["C"] == 900)
,但是我太懒了,无法修复它。为读者做练习。:^)相关问题 更多 >
编程相关推荐