gpt4 book ai didi

python - 如何删除 pandas df 中具有相同值但顺序不同的行?

转载 作者:行者123 更新时间:2023-12-01 08:49:43 26 4
gpt4 key购买 nike

我用 Python 编写了以下代码:

df=df.groupby(['card1', 'card2']).size().reset_index().rename(columns{0:'count'})
df['hand']=df['card1']+', '+df['card2']
df

给出以下输出:

card1   card2   count   hand
2c 7h 1 2c, 7h
2c 7s 1 2c, 7s
7h 2c 1 7h, 2c

我想得到这样的输出:

card1   card2   count   hand
2c 7h 2 2c, 7h
2c 7s 1 2c, 7s

对我来说,哪张牌是第一张并不重要(因此输出 1 和 3 应该算作同一手牌。我不知道如何做到这一点。

最佳答案

我会退一步,通过 np.sort 对每一行进行排序,然后使用groupby + size:

cols = ['card1', 'card2']

res = pd.DataFrame(np.sort(df[cols].values, axis=1), columns=cols)\
.groupby(cols).size().rename('count').reset_index()

如果您需要逗号分隔的系列,在较小的结果上创建它会更有效:

res['hand'] = res['card1'] + ', ' + res['card2']

print(res)

card1 card2 count hand
0 2c 7h 2 2c, 7h
1 2c 7s 1 2c, 7s

关于python - 如何删除 pandas df 中具有相同值但顺序不同的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175987/

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