簡體   English   中英

groupby逗號分隔值在單個DataFrame列python / pandas中

[英]groupby comma-separated values in single DataFrame column python/pandas

舉個例子,假設我有一個python pandas DataFrame,如下所示:

#  PERSON  THINGS
0  Joe     Candy Corn, Popsicles
1  Jane    Popsicles
2  John    Candy Corn, Ice Packs
3  Lefty   Ice Packs, Hot Dogs

我想使用pandas groupby功能來獲得以下輸出:

THINGS        COUNT
Candy Corn    2
Popsicles     2
Ice Packs     2
Hot Dogs      1

我通常理解以下groupby命令:

df.groupby(['THINGS']).count()

但輸出不是單個項目,而是整個字符串。 我想我明白為什么會這樣,但是我不清楚如何最好地解決問題以獲得所需的輸出而不是以下內容:

THINGS                  PERSON
Candy Corn, Ice Packs   1
Candy Corn, Popsicles   1
Ice Packs, Hot Dogs     1
Popsicles               1

pandas是否有像SQL中的LIKE這樣的函數,或者我在考慮如何在pandas中做錯?

任何協助贊賞。

通過拆分單詞創建一個系列,並使用value_counts

In [292]: pd.Series(df.THINGS.str.cat(sep=', ').split(', ')).value_counts()
Out[292]:
Popsicles     2
Ice Packs     2
Candy Corn    2
Hot Dogs      1
dtype: int64

您需要拆分THINGS ,並展平系列和計數值。

pd.Series([item.strip() for sublist in df['THINGS'].str.split(',') for item in sublist]).value_counts()

輸出:

Candy Corn    2
Popsicles     2
Ice Packs     2
Hot Dogs      1
dtype: int64

暫無
暫無

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

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