我使用pandas.DataFrame。Drop_duplicates在数据框中搜索重复项。这将从数据框架中删除重复项。这也很有效。但是,我想知道哪些数据被删除了。
是否有一种方法可以在删除数据之前将数据保存在新列表中?
遗憾的是,我在pandas的文档中没有发现这方面的信息。
谢谢你的回答。
使用duplicated
函数过滤掉重复的信息。默认情况下,第一次出现设置为True
,所有其他设置为False
,使用此函数和原始数据的过滤器,您可以知道哪些数据保留,哪些数据删除。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.duplicated.html
您可以使用duplicated
和布尔索引与groupby.agg
保持重复列表:
m = df.duplicated('group')
dropped = df[m].groupby(df['group'])['value'].agg(list)
print(dropped)
df = df[~m]
print(df)
输出:
# print(dropped)
group
A [2]
B [4, 5]
C [7]
Name: value, dtype: object
# print(df)
group value
0 A 1
2 B 3
5 C 6
输入:使用
group value
0 A 1
1 A 2
2 B 3
3 B 4
4 B 5
5 C 6
6 C 7