如何在 Pandas 中根据上一行的值条件增加新列并累加满足条件的值?
根据上一行的值条件增加新列
在 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