簡體   English   中英

有沒有辦法在pandas的單列下對多列進行分組?

[英]Is there a way to groupby multiple columns under a single column in pandas?

我有一張這樣的桌子---

區域 列1 列2 列3
達卡 [1,2,3] [2,3] [4,5,6]
錫爾赫特 [10,11] [7,9,10] [10,13,7]

我想要這張桌子的形狀——

區域 總數
達卡 1個
2個
3個
4個
5個
6個
錫爾赫特 10
11
7
9
13

我怎樣才能在 pandas 中做到這一點?

如有必要,將值轉換為列表:

import ast

df.iloc[:, 1:] = df.iloc[:, 1:].applymap(ast.literal_eval)

然后通過DataFrame.set_indexDataFrame.stack進行整形,通過Series.explode分解列表,創建 2 列 DataFrame 最后刪除重復項:

df = (df.set_index('AREA')
        .stack()
        .explode()
        .droplevel(1)
        .reset_index(name='total_num')
        .drop_duplicates())
print (df)
      AREA total_num
0    Dhaka         1
1    Dhaka         2
2    Dhaka         3
5    Dhaka         4
6    Dhaka         5
7    Dhaka         6
8   Sylhet        10
9   Sylhet        11
10  Sylhet         7
11  Sylhet         9
14  Sylhet        13

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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