首页 > 解决方案 > 查找合并的两列中唯一元素的总数

问题描述

我有一个数据框 names_df,有 8 亿行,两列。名字和姓氏。我需要从合并的两列中找到唯一名称的总数。

           first_name last_name
0          john       doe
1          jane       doe
2          doe        john
3          doe        jane
:
799999999  Levi       Ackerman
800000000  Gojo       Satoru

我可以简单地做:

unique_names = np.concatenate((names_df.first_name.unique(), names_df.last_name.unique()), axis=None)
unique_names=set(unique_names.tolist())
print(len(unique_names))

但是,这需要很多时间并且效率低下,从两列组合中找到唯一值的总数更有效的是什么?unique_names 看起来像这样 =

>>>print(unique_names)
>>> {'john','jane','doe','levi','ackerman','Gojo','satoru'}

标签: pythonpython-3.xpandasdataframe

解决方案


使用这个(这比你的方法快):

set(names_df['first_name'].unique().tolist()+names_df['last_name'].unique().tolist())

推荐阅读