这两个数据框 c1 , c2 包含一些公司及其所属的国家/地区。
## Data of c1: 6 company in 4 countries.
Country Company
0 USA Walmart
1 USA Apple
2 China CNPC
3 China State_grid
4 UK BP
5 Japan Toyota
## Data of c2: 10 company in the same 4 countries.
Country Company
0 USA Walmart
1 USA Apple
2 USA Verizon
3 USA JP_Morgan
4 China CNPC
5 China China_Bank
6 UK BP
7 Japan Toyota
8 Japan Honda
9 Japan Sony
我们可以注意到 c1 和 c2 中的某些公司是不同的(例如:Honda),有些公司是相同的(例如:Walmart)。
我的目标
合并这两个数据框并总结每个国家/地区的公司数量。
一个。对于一个数据帧,我可以使用
> c1.Country.value_counts()
output:
USA 2
China 2
UK 1
Japan 1
B中。对于具有相同内容的两个数据帧,我尝试使用unique
函数来删除转发器。
>dc = pd.concat([c1.Company,c2.Company])
>print len(dc)
>print len(dc.unique())
Output:
> 16
> 11
如何结合c1& c2一起处理,过滤中继器?
然后,我可以得到如下统计结果:
Country Company
0 USA Walmart
1 USA Apple
2 USA Verizon
3 USA JP_Morgan
4 China CNPC
5 China State_grid
6 China China_Bank
7 UK BP
8 Japan Toyota
9 Japan Honda
10 Japan Sony
答案 0 :(得分:1)
我认为您可以concat
DataFrames
然后drop_duplicates
与reset_index
:
c = pd.concat([c1, c2]).drop_duplicates(subset=['Country','Company']).reset_index(drop=True)
Country Company
0 USA Walmart
1 USA Apple
2 USA Verizon
3 USA JP_Morgan
4 China CNPC
5 China China_Bank
6 UK BP
7 Japan Toyota
8 Japan Honda
9 Japan Sony
print c.Country.value_counts()
USA 4
China 3
Japan 3
UK 1
Name: Country, dtype: int64