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?
解决方案
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
推荐阅读
- python - 如何在python的命令行中只输入文件名的一部分
- javascript - 反应JS | 对象作为反应子项无效
- python - selenium.common.exceptions.NoSuchElementException:消息:无法找到元素:[id="login-passwd"]
- mysql - 在给定字符串之后修剪 MySQL 字符串
- laravel - 在 Laravel 5.8 的 Illuminate\Support\Fluent 中找不到方法“引用”
- android - Android 上的 WebView 中的低性能 Leafletjs
- reactjs - 使用 redux 开发工具插件进行调试时,字段值不会更改
- sql - 如何在 VBA 中将 SQL 查询结果记录保存为整数
- google-api - 使用 API 在 Google Drive 上的 Youtube 上上传视频
- java - 如何将 Arraylist 转换为 2D double[][] 数组