2017-08-04 56 views
1

比方说,这是我的数据帧如何删除基于在熊猫数据帧两个或两个以上的子集标准重复

df = pd.DataFrame({ 'bio' : ['1', '1', '1', '4'], 
       'center' : ['one', 'one', 'two', 'three'], 
       'outcome' : ['f','t','f','f'] }) 

它看起来像这样...

bio center outcome 
0 1 one  f 
1 1 one  t 
2 1 two  f 
3 4 three  f 

我想删除第1行,因为它具有与第0行相同的生物&中心。 我想保留第2行,因为它具有相同的生物但不同的中心,然后是第0行。

类似这将无法工作基于drop_duplicates输入结构,但这正是我想要做的

df.drop_duplicates(subset = 'bio' & subset = 'center') 

有什么建议吗?

编辑:改变DF一点点正确的答案,以适应例如

回答

2

你的语法是错误的。下面是正确的方法:

df.drop_duplicates(subset=['bio', 'center', 'outcome']) 

或在这种特定的情况下,只是简单地说:

df.drop_duplicates() 

都返回如下:

bio center outcome 
0 1 one  f 
2 1 two  f 
3 4 three  f 

df.drop_duplicatesdocumentation语法细节请看。 subset应该是一列列标签。

+0

好点。我忽略了“子集”的定义。只是在一个简单的问题上浪费了一个小时:) – logic8