gpt4 book ai didi

python-3.x - 在不考虑订单时检查 Pandas 行是否唯一

转载 作者:行者123 更新时间:2023-12-03 21:46:01 24 4
gpt4 key购买 nike

我想知道是否有办法检查然后删除某些不唯一的行?
我的数据框看起来像这样:

    ID1 ID2 weight  
0 2 4 0.5
1 3 7 0.8
2 4 2 0.5
3 7 3 0.8
4 8 2 0.5
5 3 8 0.5
编辑:我添加了更多行以显示应该保留其他可能具有相同权重的独特行。
我认为当我使用 Pandas 时 drop_duplicates(subset=['ID1', 'ID2','weight'], keep=False)它单独考虑每一行,但没有认识到第 0 行和第 2 行以及第 1 行和第 4 行实际上是相同的值?

最佳答案

沿 axis=1 对数据框进行排序然后使用 np.unique带有可选参数 return_index=True获取唯一元素的索引:

sub = ['ID1', 'ID2', 'weight']

idx = np.unique(np.sort(df[sub], 1), axis=0, return_index=True)[1]
df1 = df.iloc[sorted(idx)]
@anky 建议的替代方法:
df1 = df[~pd.DataFrame(np.sort(df[sub], 1), index=df.index).duplicated()]
print(df1)

ID1 ID2 weight
0 2 4 0.5
1 3 7 0.8
4 8 2 0.5
5 3 8 0.5

关于python-3.x - 在不考虑订单时检查 Pandas 行是否唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64105699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com