python - 计算 Pandas 中不同字符串集的元素
问题描述
假设我有以下数据框:
d = {'col1':['apple; kiwi; banana','orange; apple','apple', 'apple, orange, melon']}
df= pd.DataFrame(d)
要得到 :
col1
0 apple; kiwi; banana
1 orange; apple
2 apple
3 apple, orange, melon
我想计算apple
与其他水果相关的次数。如果我这样做,df.value_counts()
我可以看到每个元素只计算一次。但是,我想知道apple
不同单元格长度的时间是多少,因为apple
有两个单元格有 3 个字符串,1 个单元格有 2 个字符串,1 个单元格有 1 个字符串。所以结果将是:
len of string number for apple
0 1 1
1 2 1
2 3 2
解决方案
首先使用 s 过滤列apple
,然后计算;
并添加1
由 和 分隔的值的数量,;
用于计数Series.value_counts
:
df = df[df['col1'].str.contains('apple')]
df1= (df['col1'].str.replace(',',';')
.str.count(';')
.add(1)
.value_counts(sort=False)
.rename_axis('vals')
.reset_index(name='count'))
print (df1)
vals count
0 1 1
1 2 1
2 3 2
推荐阅读
- java - 数组未按预期初始化
- android - Android - 如何实现无暂停/延迟的振动模式?
- sql - 如何计算取决于月份的值
- sql - 找不到sas的日志中指出的错误在哪里
- .net - 运行 dotnet test --collect "Code coverage" 时如何设置自定义覆盖结果文件路径?
- php - POST 请求在 POSTMAN 上工作,但不在 PHP 中
- encryption - 从服务将加密文件存储在磁盘上
- ruby-on-rails - rails 6 和 vue.js 新项目失败
- android - 如何通过 navArgs 将参数传递给详细 ViewModel
- javascript - 如何以与使用提交按钮时相同的格式发送带有 FormData 的 POST XHR 请求?