gpt4 book ai didi

python - 检查 pandas DataFrame 中的两行是否具有相同的值集,无论列顺序如何

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:08 25 4
gpt4 key购买 nike

我有两个索引相同但列名不同的数据框。列数相同。我想按索引检查,1) 无论列顺序如何,它们是否具有相同的值集,以及 2) 它们是否具有关于列顺序的相同值集。

ind = ['aaa', 'bbb', 'ccc']
df1 = pd.DataFrame({'old1': ['A','A','A'], 'old2': ['B','B','B'], 'old3': ['C','C','C']}, index=ind)
df2 = pd.DataFrame({'new1': ['A','A','A'], 'new2': ['B','C','B'], 'new3': ['C','B','D']}, index=ind)

这是我需要的输出。

     OpX   OpY
-------------
aaa True True
bbb False True
ccc False False

谁能帮我解决 OpX 和 OpY?

最佳答案

使用 tupleset:保持顺序或元组,并使用 set 重新排序

s1=df1.apply(tuple,1)==df2.apply(tuple,1)
s2=df1.apply(set,1)==df2.apply(set,1)
pd.concat([s1,s2],1)
Out[746]:
0 1
aaa True True
bbb False True
ccc False False

由于cs95提到apply这里有问题

s=np.equal(df1.values,df2.values).all(1)
t=np.equal(np.sort(df1.values,1),np.sort(df2.values,1)).all(1)
pd.DataFrame(np.column_stack([s,t]),index=df1.index)
Out[754]:
0 1
aaa True True
bbb False True
ccc False False

关于python - 检查 pandas DataFrame 中的两行是否具有相同的值集,无论列顺序如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56388062/

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