我有一个pandas
数据框,如下所示。
name type loc
abc cew hyd
abc cew mum
bcd tes kkr
ced fge abe
ced fge abe
现在我想创建两个数据框,首先删除所有重复项,然后创建data frames
1st
df
(contains rows for columns where name and type are same
)
name type loc
abc cew hyd
abc cew mum
2nd
df
(contains rows for columns where name and type are different
)
name type loc
bcd tes kkr
ced fge abe
我可以放弃duplicates
,如下所示
df = df1.drop_duplicates(subset='name', keep='first')
但是从这里我无法继续前进。答案和解释将是有帮助的
答案 0 :(得分:2)
所有列首先drop_duplicates
,然后使用duplicated
进行布局掩码,boolean indexing
进行过滤,~
用于反转掩码:
df = df.drop_duplicates()
m = df.duplicated(['name','type'], keep=False)
print (m)
0 True
1 True
2 False
3 False
dtype: bool
df1 = df[m]
print (df1)
name type loc
0 abc cew hyd
1 abc cew mum
df2 = df[~m]
print (df2)
name type loc
2 bcd tes kkr
3 ced fge abe