python - 如何计算字符串出现在多个数据帧的列中的次数
问题描述
我有一些看起来像这样的数据框,它们遵循相同的格式。
这是df1:
country ticker
0 US MSFT
1 US AAPL
2 GERMANY NSU.DE
3 SG D05.SI
4 AUS WOW.AX
这是df2:
country ticker
0 HK 0700.HK
1 HK 1337.HK
2 SWISS NESN.SW
3 SG OV8.SI
数据框保存到具有多张工作表的 csv 文件中。我可以轻松地循环它们。
我想创建一个框架或字典或变量来计算国家出现这样的总次数。
country count
0 US 2
1 GERMANY 1
2 SG 2
3 AUS 1
4 SWISS 1
5 HK 2
我怎样才能做到这一点?它不必是数据框。
解决方案
您可以按国家/地区对每个 df 进行分组,然后合并所有 dfs 和 sum 计数:
#group by countries and get count
df1 = csvDf1.groupby('country').count().reset_index()
df2 = csvDf2.groupby('country').count().reset_index()
df3 = csvDf3.groupby('country').count().reset_index()
#merge all dfs
combinedDf = df1.merge(df2, how='outer', on=['country'])
combinedDf = combinedDf.merge(df3, how='outer', on=['country'])
#sum all counts per country
combinedDf ['total']=combinedDf .iloc[:,1:].sum(1)
combinedDf = combinedDf[['country', 'total']]
推荐阅读
- laravel - 将域名从 Laravel 重新指向 Shopify
- sql-server - SQL Server 引擎如何在此联接方案中工作?
- javascript - 如何使用 node-fetch 通过 discord webhook 发送图像?
- c# - Unity - C# - 快速排序算法 - courutines
- html - 如何从R网站上的下拉菜单中解析文本?
- python - Python ftplib pwd() 返回一个空字符串
- python - Python 多线程竞争条件行为随时间而变化
- opencv - 计算图像意味着通道和像素
- google-cloud-functions - firebase云功能上限和时间限制
- linux - 如何使用 cmake 通过 gRPC 构建 Qt Quick Application(使用 Linux)