如果其他列符合条件,则将操作应用于Pandas列

时间:2014-07-28 05:18:08

标签: python pandas

我对Python比较陌生,对Pandas来说是完全新手,所以如果这很简单,我很抱歉。我有一个数据框,我想对特定列中的所有元素进行操作,但仅当具有相同索引的不同列满足特定条件时才会操作。

   float_col  int_col str_col
0        0.1        1       a
1        0.2        2       b
2        0.2        6    None
3       10.1        8       c
4        NaN       -1       a

例如,如果float_col中的值大于5,我想将in_col中的值(在同一行中)乘以2.我猜我应该使用{{1}中的一个} mapapply函数,但我不确定哪个或如何。

1 个答案:

答案 0 :(得分:3)

可能有更优雅的方法可以执行此操作,但是一旦您了解了如何使用loc之类的内容来获取数据集的特定子集,就可以这样做:

df.loc[df['float_col'] > 5, 'int_col'] = df.loc[df['float_col'] > 5, 'int_col'] * 2

您也可以更简洁地执行此操作,因为pandas足够聪明,可以根据数据框的索引匹配结果,并且只使用df['int_col'] * 2表达式中的相关数据:

df.loc[df['float_col'] > 5, 'int_col'] = df['int_col'] * 2