[英]creating columns based on previous column values with condition / Python -Pandas
[英]Pandas: creating values in a column based on the previous value in that column
快速示例:
前:
In Out
1 5
10 0
2 3
后
In Out Value
1 5 -4
10 0 6
2 3 5
所以这里的公式是Value(rowx) = Value (rowx - 1) + In(rowx) - Out(rowx)
。
我从添加一个每个单元格为 0 的值列开始。然后我查看了一个 shift(),但它使用了命令/函数开头的前一行中的值。 因此它将始终使用 0 作为 Value 的值。 有没有办法在不使用 iterrows() 或 for 循环的情况下做到这一点?
在您的计算中,您似乎可以先计算In - Out
,然后使用cumsum()
import pandas as pd
data = {
'In': [1,10,2],
'Out': [5,0,3]
}
df = pd.DataFrame(data)
df['Value'] = df['In'] - df['Out']
df['Value'] = df['Value'].cumsum()
print(df)
甚至更短
df['Value'] = (df['In'] - df['Out']).cumsum()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.