python - 从 DataFrame 中拆分行值和计数唯一值
问题描述
我在标题为Reference的列中有以下数据:
ABS052
ABS052/01
ABS052/02
ADA010/00
ADD005
ADD005/01
ADD005/02
ADD005/03
ADD005/04
ADD005/05
...
WOO032
WOO032/01
WOO032/02
WOO032/03
WOO045
WOO045/01
WOO045/02
WOO045/03
WOO045/04
我想知道如何拆分行值以创建一个包含单个参考代码的 Dataframe,加上一个 Count 值,例如:
参考 | 数数 |
---|---|
ABS052 | 3 |
ADA010 | 0 |
添加005 | 2 |
... | ... |
WOO032 | 3 |
WOO045 | 4 |
我有以下代码:
df['Reference'] = df['Reference'].str.split('/')
结果是:
['ABS052'],
['ABS052','01'],
['ABS052','02'],
['ABS052','03'],
...
但我不确定如何从每行列表中删除最后两位数字。
我现在想要的只是将字符串保留在每一行[0]
中,如果有意义的话,那么我可以value_count
从'Reference'
列中检索 a 。
解决方案
您可以使用正则表达式替换最后两位数字,如下所示:
df = pd.DataFrame({'a':['ABS052','ABS052/01','ABS052/02','ADA010/00','ADD005','ADD005/01','ADD005/02','ADD005/03','ADD005/04','ADD005/05']})
df = df['a'].str.replace(r'\/\d+$', '').value_counts().reset_index()
输出:
>>>> index a
0 ADD005 6
1 ABS052 3
2 ADA010 1
推荐阅读
- amazon-web-services - 将 Django 应用程序从 heroku (celery/redis) 迁移到 aws fargate/lambda
- javascript - 导出时返回未定义的函数
- jxls - JXLS:如何在 XML 标记中为日期列添加 If 命令条件
- python - 从 JSON 结果中提取位置坐标
- vue.js - 如何将道具 ID 传递给另一个组件?
- javascript - bookdown 中多种语言的代码折叠
- python - 如何在 Python 中更改结构 .json
- kotlin - Ktor - 我生成了一个新项目尝试一下,但无法导入 CIO 引擎
- three.js - Three.js如何将四元数转换为Pathline?
- powershell - 什么证书用于对 PS 脚本进行数字签名