如何分隔条目并计算出现次数
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
您需要 split
和 explode
,然后使用 value_counts
获取每个国家/地区的排序计数:
out = (data['nationality']
.str.split(', ')
.explode()
.value_counts()
)
输出:
France 3
US 2
Name: nationality, dtype: int64
我正在统计大多数名人来自哪个国家/地区。然而,我正在使用的 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
您需要 split
和 explode
,然后使用 value_counts
获取每个国家/地区的排序计数:
out = (data['nationality']
.str.split(', ')
.explode()
.value_counts()
)
输出:
France 3
US 2
Name: nationality, dtype: int64