python - 如何通过python pandas删除数据框中的重复数据记录
问题描述
[嗨亲爱的,我是一个学习python和pandas的菜鸟。我想用 Python 和 Pandas 删除我的数据框中的重复数据记录,其中包含重复数据。在数据框中,我有两列“代码”和“数字”。有几个重复的行具有相同的“代码”值,每行对应一个数字。我只希望保留一个代码并保存最大的相应数字。例如:“a”具有三个值:7、5 和 4。我希望它只保留 7 并删除其余值,其他代码也一样。有人会帮忙吗?非常感谢]
解决方案
创建数据框作为示例:
import pandas as pd
df = pd.DataFrame({
"code": pd.Series(["a", "a", "a", "b", "b"]),
"number": pd.Series([1,7,3,8,4])
})
df
code number
0 a 1
2 a 7
1 a 3
4 b 8
3 b 4
对数据框进行排序,使代码具有顺序,然后以递增方式对数字进行排序:
df_sorted = df.sort_values(by=["code","number"])
df_sorted
code number
0 a 1
2 a 3
1 a 7
4 b 4
3 b 8
重复删除codes
,但保留code
最大的number
df_unique = df_sorted.drop_duplicates(subset="code", inplace=False, keep="last")
df_unique
code number
1 a 7
3 b 8
推荐阅读
- node.js - 在 Koa 中返回 JSON
- java - @Column 在 Java + Hibernate 的子类中不起作用
- kendo-ui - 为什么 Kendo Grid (Vue) 不显示第 2、3、4 页的数据?
- regex - 从字符串中查找不包括管道和空格的子字符串
- javascript - 解析xml以获取两个节点之间的所有节点
- ios - 如何将包含在可选中的时间戳值转换为双精度值?
- prolog - 序言中的文字'_'?
- python - 如何不将 False/其他值评估为 0
- java - renameTo 方法后文件被锁定(JAVA、Windows、JDK6)
- javascript - 包含 babel polyfill,但 forEach 在 NodeLists 上的 IE11 中仍然不起作用