我有一個dataframe
,並且想要減去前一行的兩列,前提是前一行的值爲相同的Name
。如果沒有,那麼我希望它產生NAN
並填寫-
。我的groupby
表達式產生錯誤,TypeError: 'Series' objects are mutable, thus they cannot be hashed
,這是非常模糊的。我錯過了什麼?在熊貓中用Groupby減去兩列
import pandas as pd
df = pd.DataFrame(data=[['Person A', 5, 8], ['Person A', 13, 11], ['Person B', 11, 32], ['Person B', 15, 20]], columns=['Names', 'Value', 'Value1'])
df['diff'] = df.groupby('Names').apply(df['Value'].shift(1) - df['Value1'].shift(1)).fillna('-')
print df
所需的輸出:
Names Value Value1 diff
0 Person A 5 8 -
1 Person A 13 11 -3
2 Person B 11 32 -
3 Person B 15 20 -21