我希望根据几个条件来操作大量数据。一个基于同一行,而另一个基于不同行的单元格。
例如我有一个这样的df,我用过
df['true'] = df.loc[:,['max','value']].min(axis=1)
添加“真”列
max value true
0,00 3,00 0,00
0,00 4,00 0,00
0,00 4,00 0,00
0,00 2,00 0,00
3,00 3,00 3,00
3,00 1,00 1,00
3,00 4,00 3,00
3,00 1,00 1,00
3,00 4,00 3,00
3,00 0,00 0,00
但我还想根据“最大”两行中单元格的值向“真”列添加一个条件。像 .loc 我想用类似的东西检查整个数据框的这种情况
df.loc[df['max'] - 2 = 0,'true'] = 0
而且由于 pandas 非常擅长查询,我不想编写 if 语句来迭代整个数据帧。
在这种情况下,输出将是:
max value true
0,00 3,00 0,00
0,00 4,00 0,00
0,00 4,00 0,00
0,00 2,00 0,00
3,00 3,00 **0,00**
3,00 1,00 **0,00**
3,00 4,00 3,00
3,00 1,00 1,00
3,00 4,00 3,00
3,00 0,00 0,00
有什么建议么?
谢谢
Solution thx @EdChum =
df.loc[df['max'].shift(+ 2) == 0,'true'] = 0