gpt4 book ai didi

python - 如何用python计算一列中每一行的唯一值?

转载 作者:行者123 更新时间:2023-12-01 02:21:39 24 4
gpt4 key购买 nike

我有这样一个数据框:

id countries
01 [UK,UK,UK,US]
02 [US,US,US,US]
03 [FR,UK,CN,US]

我想计算每个 ID 存在多少个国家/地区。结果应该是这样的:

id countries counts
01 [UK,UK,UK,US] 2
02 [US,US,US,US] 1
03 [FR,UK,CN,US] 4

最佳答案

如果值是list,则将它们转换为set并获取length:

print (type(df.loc[0, 'countries']))
<class 'list'>

df['counts'] = df['countries'].apply(lambda x: len(set(x)))
print (df)
id countries counts
0 1 [UK, UK, UK, US] 2
1 2 [US, US, US, US] 1
2 3 [FR, UK, CN, US] 4

或者如果值为字符串,首先删除[]并拆分:

print (type(df.loc[0, 'countries']))
<class 'str'>

df['counts'] = df['countries'].str.strip('[]').str.split(',').apply(lambda x: len(set(x)))
print (df)
id countries counts
0 1 [UK,UK,UK,US] 2
1 2 [US,US,US,US] 1
2 3 [FR,UK,CN,US] 4

关于python - 如何用python计算一列中每一行的唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47900430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com