我试图返回一个df
,其中删除了重复的值。我试过使用drop.duplicates()
,但是列中的值没有排序。如中所示,这些值是重复的,但顺序不同。你知道吗
例如,使用下面的df
,如果我尝试从Item_X
和Item_Y
中删除重复值,它将返回相同的df
。其中预期输出将删除第二行。你知道吗
import pandas as pd
d = ({
'Item_X' : ['Foo','Bar','Bot','Bot','Bar','Foo'],
'Item_Y' : ['Bar','Foo','Foo','Bot','Bar','Foo'],
'Value' : [1,2,3,4,5,6],
})
df = pd.DataFrame(data = d)
df.drop_duplicates(subset=['Item_X','Item_Y'])
预期结果:
Item_X Item_Y Value
0 Foo Bar 1
2 Bot Foo 3
3 Bot Bot 4
4 Bar Bar 5
5 Foo Foo 6
实际输出(不正确):
Item_X Item_Y Value
0 Foo Bar 1
1 Bar Foo 2
2 Bot Foo 3
3 Bot Bot 4
4 Bar Bar 5
5 Foo Foo 6
解决这个问题最有效的方法是什么?你知道吗
您需要沿水平轴对列进行排序,然后获得一个掩码来子集原始帧。下面是如何使用
np.sort
和df.duplicated
来实现这一点:IIUC,使用:
相关问题 更多 >
编程相关推荐