[英]Pandas Groupby back to DataFrame
我有一個數據框:
df = pd.DataFrame({'Section': [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6],
'Unit': np.arange(0,15)/100.0,
'Entries': [11, 22, 23, 1, 4, 8,
99, 112, 235, 22, 126,
442, 45, 56, 10],
'Exits': np.random.randint(0,100,15)},
columns = ['Section', 'Unit', 'Entries', 'Exits'])
我想將每個部分的條目數據更改為值之間的差異。
例如,第 1 部分的條目是 11、22、23。 我希望它們是 0、11、1(每個值之間的差異)。
我可以做df.groupby('Section').Entries.apply(diff)
但這擺脫了起始值並給我留下了一個我不知道如何回到數據幀的系列。
怎么可能做到這一點?
那是你要的嗎?
In [93]: df['diff'] = df.groupby('Section')['Entries'].diff().fillna(0)
In [94]: df
Out[94]:
Section Unit Entries Exits diff
0 1 0.00 11 97 0.0
1 1 0.01 22 89 11.0
2 1 0.02 23 98 1.0
3 2 0.03 1 39 0.0
4 2 0.04 4 42 3.0
5 2 0.05 8 35 4.0
6 3 0.06 99 59 0.0
7 3 0.07 112 16 13.0
8 3 0.08 235 1 123.0
9 4 0.09 22 73 0.0
10 4 0.10 126 97 104.0
11 4 0.11 442 56 316.0
12 5 0.12 45 78 0.0
13 5 0.13 56 42 11.0
14 6 0.14 10 30 0.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.