单数据帧列python/pandas中的groupby逗号分隔值

单数据帧列python/pandas中的groupby逗号分隔值,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,例如,假设我有一个python数据帧,如下所示: # PERSON THINGS 0 Joe Candy Corn, Popsicles 1 Jane Popsicles 2 John Candy Corn, Ice Packs 3 Lefty Ice Packs, Hot Dogs THINGS PERSON Candy Corn, Ice Packs 1 Candy Corn, Popsicles 1 Ice P

例如,假设我有一个python数据帧,如下所示:

#  PERSON  THINGS
0  Joe     Candy Corn, Popsicles
1  Jane    Popsicles
2  John    Candy Corn, Ice Packs
3  Lefty   Ice Packs, Hot Dogs
THINGS                  PERSON
Candy Corn, Ice Packs   1
Candy Corn, Popsicles   1
Ice Packs, Hot Dogs     1
Popsicles               1
我希望使用pandas groupby功能获得以下输出:

THINGS        COUNT
Candy Corn    2
Popsicles     2
Ice Packs     2
Hot Dogs      1
我大致了解以下groupby命令:

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

#  PERSON  THINGS
0  Joe     Candy Corn, Popsicles
1  Jane    Popsicles
2  John    Candy Corn, Ice Packs
3  Lefty   Ice Packs, Hot Dogs
THINGS                  PERSON
Candy Corn, Ice Packs   1
Candy Corn, Popsicles   1
Ice Packs, Hot Dogs     1
Popsicles               1
pandas在SQL中是否有类似的函数,或者我是否在考虑如何在pandas中做错事


感谢您的帮助。

通过拆分单词创建一个系列,并使用
值\u计数

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

您需要按
拆分
对象,并展平序列和计数值

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

“分享你所写的内容将非常有用。”HackSaw——我当然可以试试。你是指我试图解决的更大的问题,还是指代码本身,以达到提出问题的目的(或其他什么?)我是新来的,希望确保我理解这个问题(以及最好把它放在哪里)。谢谢你的评论。