python - 熊猫不删除重复项
问题描述
在以下脚本中
import pandas as pd
def start():
df_dict = {"A": [1,2,3,3,4], "B": [1,2,2,3,4]}
df = pd.DataFrame(df_dict)
df.drop_duplicates(inplace = True, keep = "last")
print(df)
if __name__ == "__main__":
start()
中的重复项df
不会被删除。可能是什么原因
电流输出:
A B
0 1 1
1 2 2
2 3 2
3 3 3
4 4 4
预期输出:
A B
0 1 1
1 2 2
3 3 3
4 4 4
解决方案
该.drop_duplicates()
方法查看数据框所有列的重复行,因此您需要使用.drop_duplicates()
while 对两列中的每一列进行子集化,然后获取这两个子集数据框的交集(内部合并)。与其打印结果数据框,不如让您的函数返回数据框更符合您的兴趣。
import pandas as pd
def start():
df_dict = {"A": [1,2,3,3,4], "B": [1,2,2,3,4]}
df = pd.DataFrame(df_dict)
# drop duplicates within each column
df1 = df.drop_duplicates(subset='A', keep='last')
df2 = df.drop_duplicates(subset='B', keep='last')
return pd.merge(df1,df2,how='inner')
if __name__ == "__main__":
result = start()
输出:
>>> result
A B
0 1 1
1 3 3
2 4 4
推荐阅读
- c++ - ShellExecuteA - 可执行文件不会从 %appdata% 运行
- python - X 每个样本有 19257 个特征;期待 19234,同时使用 Logistic 回归 Pickle 模型进行预测
- .net - NullReferenceException:对象引用未设置为对象 .NET Core 的实例
- javascript - 达到某个值时禁用向左滚动
- angular - 如何在 FullCalendar 中仅显示当前月份的事件?
- c# - 在使用 azure auth 之前,使用带有自定义登录屏幕的 BFF 在“/”上提供受身份验证保护的 SPA
- python - 以数字形式查找数组的索引(i,j 到 ij)
- c# - Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException:'数据库操作预计会影响 1 行,但实际上会影响 0 行
- wso2 - WSO2 API Manager 3.2.0 与其他计费引擎的集成
- python - 如何在 Pandas 数据框中的动态列中添加值?