PHP前端开发

如何在 Pandas 中根据上一行的值条件增加新列并累加满足条件的值?

百变鹏仔 5天前 #Python
文章标签 条件

根据上一行的值条件增加新列

在 pandas 中,可以通过 df.apply() 函数结合条件判断和赋值操作,根据上一行的值条件向 dataframe 中增加新列。

例如,给定一个 dataframe:

values = [[5.5, 2.5, 10.0], [2.0, 4.5, 1.0], [2.5, 5.2, 8.0], [4.5, 5.8, 4.8], [4.6, 6.3, 9.6], [4.1, 6.4, 9.0], [5.1, 2.3, 11.1]]df = pd.dataframe(values, columns=['col1', 'col2', 'col3'],index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])

要根据 col1 列的值条件向 dataframe 中增加新列 col4,满足条件 3

df['col4'] = df.apply(lambda x: 1 if 3 < x['col1'] < 5 else 0, axis=1)

结果为:

col1  col2  col3  col4a   5.5   2.5  10.0    0b   2.0   4.5   1.0    0c   2.5   5.2   8.0    0d   4.5   5.8   4.8    1e   4.6   6.3   9.6    1f   4.1   6.4   9.0    1g   5.1   2.3  11.1    0

进一步,如果需要将满足条件 3

df['col4'] = df['col4'].cumsum()

结果为:

col1  col2  col3  col4a   5.5   2.5  10.0    0b   2.0   4.5   1.0    0c   2.5   5.2   8.0    0d   4.5   5.8   4.8    1e   4.6   6.3   9.6    2f   4.1   6.4   9.0    3g   5.1   2.3  11.1    3