簡體   English   中英

Pandas Groupby 回到 DataFrame

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM