簡體   English   中英

從 pandas groupBy 中獲取值和鍵列表

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

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