计算列表中每个项目在 pandas 数据框列中出现的次数,用逗号分隔值 [英] Count number of times each item in list occurs in a pandas dataframe column with comma separates vales
本文介绍了计算列表中每个项目在 pandas 数据框列中出现的次数,用逗号分隔值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个列表:
citylist = ['New York', 'San Francisco', 'Los Angeles', 'Chicago', 'Miami']
和具有这些值的熊猫数据框df1
and a pandas Dataframe df1 with these values
first last city email
John Travis New York a@email.com
Jim Perterson San Franciso, Los Angeles b@email.com
Nancy Travis Chicago b1@email.com
Jake Templeton Los Angeles b3@email.com
John Myers New York b4@email.com
Peter Johnson San Franciso, Chicago b5@email.com
Aby Peters Los Angeles b6@email.com
Amy Thomas San Franciso b7@email.com
Jessica Thompson Los Angeles, Chicago, New York b8@email.com
我想统计数据列表列 city中citylist中每个城市的出现次数:
I want to count the number of times each city from citylist occurs in the dataframe column 'city':
New York 3
San Francisco 3
Los Angeles 4
Chicago 3
Miami 0
当前我有
dftest = df1.groupby(by='city', as_index=False).agg({'id': pd.Series.nunique})
并计入洛杉矶,芝加哥,纽约作为1个唯一值
and it ends counting "Los Angeles, Chicago, New York" as 1 unique value
如上所示,有什么方法可以计数吗?
谢谢
Is there any way to get counts as I have show above? Thanks
推荐答案
尝试以下操作:
先修复数据:
df1['city'] = df1['city'].str.replace('Franciso', 'Francisco')
使用此功能:
(df1['city'].str.split(', ')
.explode()
.value_counts(sort=False)
.reindex(citylist, fill_value=0))
输出:
New York 3
San Francisco 3
Los Angeles 4
Chicago 3
Miami 0
Name: city, dtype: int64
这篇关于计算列表中每个项目在 pandas 数据框列中出现的次数,用逗号分隔值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文