如何分隔条目并计算出现次数

How to separate entries, and count the occurrences

我正在统计大多数名人来自哪个国家/地区。然而,我正在使用的 csv 有多个国家的单个名人。例如“法国、美国”表示拥有双重国籍的人。

为了计算以上内容,我可以对“国籍”列中的条目使用 .count()。但是,我想分别计算法国、美国和任何其他国家/地区。

我想不出一种方法来分隔列中的所有条目,然后计算出现次数。

我希望能够用这些计数重新排序我的数据框,所以我想在结构中计算它

data.groupby(by="国籍").count()

这 returns 一些错误的计数

“法国、美国”1

假设这种类型的数据:

data = pd.DataFrame({'nationality': ['France','France, US', 'US', 'France']})

  nationality
0      France
1  France, US
2          US
3      France

您需要 splitexplode,然后使用 value_counts 获取每个国家/地区的排序计数:

out = (data['nationality']
       .str.split(', ')
       .explode()
       .value_counts()
      )

输出:

France    3
US        2
Name: nationality, dtype: int64