groupby逗号分隔值在单个DataFrame列python/pandas中

Kyl*_*way 3 python dataframe pandas pandas-groupby

举个例子,假设我有一个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
Run Code Online (Sandbox Code Playgroud)

我想使用pandas groupby功能来获得以下输出:

THINGS        COUNT
Candy Corn    2
Popsicles     2
Ice Packs     2
Hot Dogs      1
Run Code Online (Sandbox Code Playgroud)

我通常理解以下groupby命令:

df.groupby(['THINGS']).count()
Run Code Online (Sandbox Code Playgroud)

但输出不是单个项目,而是整个字符串.我想我明白为什么会这样,但是我不清楚如何最好地解决问题以获得所需的输出而不是以下内容:

THINGS                  PERSON
Candy Corn, Ice Packs   1
Candy Corn, Popsicles   1
Ice Packs, Hot Dogs     1
Popsicles               1
Run Code Online (Sandbox Code Playgroud)

pandas是否有像SQL中的LIKE这样的函数,或者我在考虑如何在pandas中做错?

任何协助赞赏.

Zer*_*ero 7

通过拆分单词创建一个系列,然后使用 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
Run Code Online (Sandbox Code Playgroud)