Python 将重复项拆分为单独的表-字段
在Pandas中,我可以使用Python 将重复项拆分为单独的表-字段,python,pandas,dataframe,duplicates,Python,Pandas,Dataframe,Duplicates,在Pandas中,我可以使用 data.drop_duplicates('foo') 指挥部。我想知道是否有一种方法可以在另一个表中捕获这些数据以供独立审查。您可以调用foo列上的duplicated方法,然后根据它对原始数据框进行子集划分,如下所示: data.loc[data['foo'].duplicated(), :] 例如: data = pd.DataFrame({'foo': [1,1,1,2,2,2], 'bar': [1,1,2,2,3,3]}) data # b
data.drop_duplicates('foo')
指挥部。我想知道是否有一种方法可以在另一个表中捕获这些数据以供独立审查。您可以调用
foo
列上的duplicated
方法,然后根据它对原始数据框进行子集划分,如下所示:
data.loc[data['foo'].duplicated(), :]
例如:
data = pd.DataFrame({'foo': [1,1,1,2,2,2], 'bar': [1,1,2,2,3,3]})
data
# bar foo
#0 1 1
#1 1 1
#2 2 1
#3 2 2
#4 3 2
#5 3 2
data.loc[data['foo'].duplicated(), :]
# bar foo
#1 1 1
#2 2 1
#4 3 2
#5 3 2
有一个伴随的方法。他们都有相似的观点
主要论点如下:
-列标签或标签序列子集
只考虑某些列来标识重复,默认情况下使用所有列
保留
-{'first'
,'last'
,假
},默认值'first'
keep
设置为'first'
时:
返回一个数据帧,其中由drop\u duplicates
指定的列组合的第一个匹配项保留在该数据帧中,其余的保留在该数据帧中subset
返回一个布尔掩码,该掩码的索引与原始数据帧的索引相同,对于指定列集的所有重复组合(除了duplicated
之外),其值均为True。您可以使用此掩码获取要删除的行或其补码(与删除重复项相同)'first'
'b'
的第一个实例对应的行是False
,而第二个实例是True
,表示要删除它
答复
keep='last'
和keep=False
下面是将keep
参数设置为'last'
或False
删除重复项
这一次,第一个实例为True
表示要删除,而第二个实例为False
表示不删除
只有重复项
删除重复项
这一次,两个实例都是True
,并且都被删除
只有重复项
df = pd.DataFrame(list('abcdbef'), columns=['letter'])
df
df.drop_duplicates(keep='first') # same as default
df.duplicated(keep='first') # same as default
0 False
1 False
2 False
3 False
4 True
5 False
6 False
dtype: bool
df[df.duplicated(keep='first')]
df.drop_duplicates(keep='last')
df.duplicated(keep='last')
0 False
1 True
2 False
3 False
4 False
5 False
6 False
dtype: bool
df[df.duplicated(keep='last')]
df.drop_duplicates(keep=False)
df.duplicated(keep=False)
0 False
1 True
2 False
3 False
4 True
5 False
6 False
dtype: bool
df[df.duplicated(keep=False)]