Skip to main content
 首页 » 编程设计

python之如何计算两列中唯一字符串的数量

2025年05月04日19mengfanrong

我有一个包含两列包含字符串的 DataFrame,例如:

col1 --- col2
Ernst --- Jim
Peter --- Ernst
Bill --- NaN
NaN --- Doug
Jim --- Jake

现在我想创建一个新的 DataFrame,在第一列中包含唯一字符串的列表,在第二列中包含每个字符串在 2 个原始列中出现的次数,例如:

str --- occurences
Ernst --- 2
Peter --- 1
Bill --- 1
Jim --- 2
Jake --- 1
Doug --- 1

我如何以最有效的方式做到这一点?谢谢!

请您参考如下方法:

首先将您原来的两列合并为一列:

In [127]: s = pd.concat([df.col1, df.col2], ignore_index=True) 
 
In [128]: s 
Out[128]:  
0    Ernst 
1    Peter 
2     Bill 
3      NaN 
4      Jim 
5      Jim 
6    Ernst 
7      NaN 
8     Doug 
9     Jake 
dtype: object 

然后使用value_counts:

In [129]: s.value_counts() 
Out[129]:  
Ernst    2 
Jim      2 
Bill     1 
Doug     1 
Jake     1 
Peter    1 
dtype: int64