python - Pandas - 组合具有相似值的行(名称拼写变化)
问题描述
我有以下 Python Pandas 数据框:
名称 销售数量 0 约翰·巴恩斯 10 1约翰巴恩斯5 2约翰巴恩斯4 3 彼得 K. 4 4彼得K 6 5彼得克莱默5 6查尔斯3 7 查尔斯 2 8朱莉摩尔3 9朱莉摩尔7 10 还有更多,具有相同的名称拼写变化。
我想将具有相似值的行组合起来,这样我就有了以下数据框:
名称 销售数量 0约翰巴尼斯19 1彼得克莱默15 2查尔斯5 3朱莉摩尔10 还有很多
我应该怎么做?
解决方案
正如您在评论中看到的那样,要求很模糊,但据我所知,我已经列出了总数。我通过将名称小写并删除句点来计算总数,并将其转换为大写str.title()
。
import pandas as pd
import io
data = '''
Name Sales
0 "JOHN BARNES" 10
1 "John Barnes" 5
2 "John barnes" 4
3 "Peter K." 4
4 "Peter K" 6
5 "Peter Krammer" 5
6 "Charles" 3
7 "CHARLES" 2
8 "Julie Moore" 3
9 "Julie moore" 7
'''
df = pd.read_csv(io.StringIO(data), sep='\s+')
df['lower'] = df['Name'].str.lower()
df['lower'] = df['lower'].str.replace('.','')
new = df.groupby('lower')['Sales'].sum().reset_index()
new['lower'] = new['lower'].str.title()
new
lower Sales
0 Charles 5
1 John Barnes 19
2 Julie Moore 10
3 Peter K 10
4 Peter Krammer 5
推荐阅读
- javascript - 我如何在javascript中制作金字塔?
- mainframe - //AMSDUMP DD 和 //SYSPRINT DD SYSOUT=A 语句是否相同?
- reactjs - 使用 React.js 的动态导航栏
- javascript - react-router-dom 中的链接删除 css
- assembly - 为什么 .data 段不是 ASLR 随机的?
- python - 如何在 AWS Lambda 函数中重用数据库连接?
- java - 通过 POST /login API 实现 Spring Security 登录
- julia - 绘制函数的梯度逼近
- reactjs - React useNavigation 说无法对未安装的组件执行反应状态更新
- loops - 如何编写一个 vbscript 继续检查应用程序是否未运行并停止检查应用程序是否正在运行