我有以下数据帧:
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