【发布时间】:2020-12-19 02:31:51
【问题描述】:
我正在使用 Python 和 pandas 库。我有一个数据框 df。我需要编写一个函数来过滤掉重复项,也就是说,删除与上面一行包含相同值的行
示例:
df = pd.DataFrame({'A': {0: 1, 1: 2, 2: 2, 3: 3, 4: 4, 5: 5, 6: 5, 7: 5, 8: 6, 9: 7, 10: 7}, 'B': {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h', 8: 'i', 9: 'j', 10: 'k'}})
我在下面写了代码。
total_len = len(df.index)
for i in range(total_len):
if df['A'].loc[i] == df['A'].loc[i+1]:
df['A'].drop(df['A'].index[i+1])
else:
df['A']
我做错了什么?
【问题讨论】:
-
不太可能,他只是在寻找上一行之间的比较
-
或..
df[df['A'] != df['A'].shift()]仅用于上一行。 -
@TrentonMcKinney ,感谢您的建议。我想删除上一行中的重复项。 drop.duplicate 删除列中的所有重复项,但知道您可以选择保留第一个或最后一个重复项或不保留它们是有用的。谢谢!
标签: pandas dataframe filter duplicates