python - 删除重复值并计算值
问题描述
我提取了一个国家列表,并尝试处理数据以生成报告。我用“ value_counts()
”来计算国家的元素。结果如下所示。
>>>country_counts
America 10
America England 1
England America 2
Canada America Hongkong 1
Korea 3
但是,有些重复项我不能使用“ drop_duplicate
”来减少它们。例如,“America England”和“England America”这两个值相同,但出现的顺序不同。我只想保留其中一个并将另一列中的值相加。
就像下面这样,把“England America”改成“America England”,把它们都加起来(2+1=3):
America 10
America England 3
Canada America Hongkong 1
Korea 3
提前致谢。
解决方案
您可以将它们拆分为空格,然后对列表进行排序。然后我将其转换
list
为 astr
以便可以在 groupby 中使用。
data = [
['America',10],
['America England', 1],
['England America', 2],
['Canada America Hongkong',1],
['Korea', 3]
]
df = pd.DataFrame(data,columns=['a','b'])
df['a'] = df['a'].apply(lambda x:str(sorted(x.split(' '))))
print(df.groupby('a').sum())
输出
b
a
['America', 'Canada', 'Hongkong'] 1
['America', 'England'] 3
['America'] 10
['Korea'] 3
推荐阅读
- html - 如何将徽标样式设置为链接?
- python - 更改按类别显示的箱线图的箱线图颜色
- html - 如何将两个 CSS 文件(一个用于设置网页样式,另一个用于设置倒数计时器样式)与一个 HTML 文件链接?
- python - 将 Beautiful Soup 表中的数据添加到列表中
- javascript - CryptoJS.AES.encrypt 在 android (kotlin) 中给出不同的结果
- serialization - 如何使用外键保存数据并在 drf 中检索完整模型?
- scala - 将 Map 转换为 Scala 对象
- python - 如何输出到应用程序本身
- python - 无法在我的热点网络上的其他 android 设备上访问 django 应用程序
- agda - 如何在 Agda 中打破长线