嗨,我想知道使用pandas对python中的列执行操作的最佳方法。
我有一个作为数据帧加载的经典数据库,我经常要对每一行执行操作,如果标记为“a”的列中的值大于x,则用列“C”减去列“D”替换该值
现在我做的事情是
for i in len(df.index):
if df.ix[i,'A'] > x :
df.ix[i,'A'] = df.ix[i,'C'] - df.ix[i, 'D']
我想知道是否有一种更简单的方法来进行这些操作,更重要的是,有一种最有效的方法,因为我有大型数据库
我试过不使用for I循环,就像在R或Stata中一样,我被建议使用“a.any”或“a.all”,但我在这里或熊猫文档中都没有找到任何东西。
提前谢谢。
我觉得最简单。
经过测试,它是有效的。
您可以将布尔掩码与数据帧的
.loc
或.ix
属性一起使用。如果你有很多分支,那么你可以:
apply
通常应该比for循环快得多。有很多方法可以做到这一点,但下面是我觉得最容易阅读的模式。
设置小于x的元素和df.loc[~idx,'A']=0一样简单
相关问题 更多 >
编程相关推荐