大熊猫的条件转变

时间:2016-03-22 16:10:32

标签: python pandas dataframe

以下pandas DataFrame是我需要处理的一个示例:

       Group   Amount
1      1       100
2      1       300
3      1       400
4      1       700
5      2       500
6      2       900

这是计算后我想要的结果:

       Group   Amount   Difference
1      1       100      100
2      1       300      200
3      1       400      100
4      1       700      300
5      2       500      500
6      2       900      400

我知道df [“Difference”] = df [“Amount”] - df [“Amount”] .shift(-1)可以产生所有行之间的差异,但是我可以为我遇到的问题做些什么像这样需要一个团队作为条件?

1 个答案:

答案 0 :(得分:2)

“小组”上的

groupby并在“金额”列上调用transform,另外调用fillna并传递“金额”列:

In [110]:
df['Difference'] = df.groupby('Group')['Amount'].transform(pd.Series.diff).fillna(df['Amount'])
df
​
Out[110]:
   Group  Amount  Difference
1      1     100         100
2      1     300         200
3      1     400         100
4      1     700         300
5      2     500         500
6      2     900         400