首先,对Dataframe排序,然后您需要做的是
groupby.diff():
df = df.sort_values(by=['site', 'country', 'date'])df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)dfOut: date site country score diff8 2018-01-01 fb es 100 0.09 2018-01-02 fb gb 100 0.05 2018-01-01 fb us 50 0.06 2018-01-02 fb us 55 5.07 2018-01-03 fb us 100 45.01 2018-01-01 google ch 50 0.04 2018-01-02 google ch 10 -40.00 2018-01-01 google us 100 0.02 2018-01-02 google us 70 -30.03 2018-01-03 google us 60 -10.0
sort_values不支持任意排序。如果您需要进行任意排序(例如Google在fb之前),则需要将它们存储在集合中并将列设置为分类。然后sort_values将遵守您在此处提供的顺序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)