熊猫通过至少在一列上匹配来加入记录



我有以下数据帧:

id          phone       email
10352897        
10352897    10225967    
10352897                user@gmail.com
10352897    10225967    user@gmail.com
10225967    
10225967    user@gmail.com
user@gmail.com
23578910        
23578910    38256789    
23578910                user2@gmail.com
23578910    38256789    user2@gmail.com
38256789    
38256789    user2@gmail.com
user2@gmail.com

我希望当它在三列中的至少一列中重合时,记录会连接已填充的字段并将其优先于空字段,最后在本例中,我希望得到以下输出:

id          phone       email
10352897    10225967    user@gmail.com
23578910    38256789    user2@gmail.com

你会怎么做?

按如下使用pandas.core.groupby.DataFrameGroupBy.aggregate

df_new = df.groupby('id').agg(lambda x: x.value_counts().index[0]).reset_index()
[Out]:
id     phone            email
0  10352897  10225967   user@gmail.com
1  23578910  38256789  user2@gmail.com

最新更新