[英]Get value and key lists out of pandas groupBy
我正在使用 pandas 創建一些統計數據所需的三個數組。 我需要所有字段、月份以及該月完成和開始的次數。
我的數據框如下
month finish started
0 MONTH.Mar 1 0
1 MONTH.Mar 1 0
2 MONTH.Mar 1 0
3 MONTH.Mar 1 0
4 MONTH.Mar 1 0
5 MONTH.Mar 0 1
6 MONTH.Apr 1 0
7 MONTH.Mar 0 1
8 MONTH.Mar 0 1
9 MONTH.Feb 0 1
我做一個groupby:
df.groupby('month').sum()
輸出如下:
finish started
month
MONTH.Apr 1 0
MONTH.Feb 0 1
MONTH.Mar 5 3
如何將數據轉換為三個不同的列表,如下所示:
['MONTH.Apr','MONTH.Feb','MONTH.Mar']
[1,0,5]
[0,1,3]
我試圖做frame.values.tolist()
但輸出如下:
[[1, 0], [0, 1], [5, 3]]
並且不可能得到幾個月。
IIUC,嘗試reset_index()
並轉置.T
:
>>> df.groupby('month').sum().reset_index().T.to_numpy()
array([['MONTH.Apr', 'MONTH.Feb', 'MONTH.Mar'],
[1, 0, 5],
[0, 1, 3]], dtype=object)
或者:
>>> df.groupby('month').sum().reset_index().T.values.tolist()
[['MONTH.Apr', 'MONTH.Feb', 'MONTH.Mar'], [1, 0, 5], [0, 1, 3]]
您可以使用:
month, finish, started = df.groupby('month', as_index=False) \
.sum().to_dict('list').values()
輸出:
>>> month
['MONTH.Apr', 'MONTH.Feb', 'MONTH.Mar']
>>> finish
[1, 0, 5]
>>> started
[0, 1, 3]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.