在以下脚本中
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()
同时对两列中的每一列进行子集化,然后得到这两个子集数据帧的交集(内部合并)。与其打印结果数据帧,不如让您的函数返回数据帧可能更符合您的兴趣。
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
关于python - Pandas 不删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63237616/