在数据帧中保留列的唯一值,而不使用拖放副本

2024-09-29 06:22:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧:

excel1 user_id public_key  first_seen
0      Mark    key1        1/14/2015  11:51:41 PM
1      Mark    key2        1/14/2015  11:51:41 PM
2      Mark    key3        1/14/2015  11:51:41 PM
3      Rhonda  key4        2/16/2015  2:16:04 PM
4      Rhonda  key5        2/16/2015  2:16:04 PM
5      Rhonda  key6        2/16/2015  2:16:04 PM

我想保留行,但删除first_seen列中的重复项

excel1 user_id public_key  first_seen
0      Mark    key1        1/14/2015  11:51:41 PM
1      Mark    key2        
2      Mark    key3        
3      Rhonda  key4        2/16/2015  2:16:04 PM
4      Rhonda  key5        
5      Rhonda  key6        

这是因为我正在对两个csv文件执行pd.merge:

merged_df = pd.merge(output_df, read_df, left_on="user_id", right_on="user_id_left", how="inner").drop_duplicates(
        subset=['body'], keep='first')

我在最后一个数据帧上尝试了.filter()和.query()方法,但没有得到想要的结果。如何获得所需的df


Tags: 数据keyiddfpublicfirstmarkkey2
1条回答
网友
1楼 · 发布于 2024-09-29 06:22:07

IIUC,您可以使用drop_duplicates

df['first_seen'] = df.drop_duplicates(['user_id', 'first_seen'])['first_seen']

输出:

   excel1 user_id public_key             first_seen
0       0    Mark       key1  1/14/2015 11:51:41 PM
1       1    Mark       key2                    NaN
2       2    Mark       key3                    NaN
3       3  Rhonda       key4   2/16/2015 2:16:04 PM
4       4  Rhonda       key5                    NaN
5       5  Rhonda       key6                    NaN

相关问题 更多 >