gpt4 book ai didi

python - 将数据帧的一行与相应的行进行比较,并将数据存储在两个单独的列中

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:37 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

 Rule ID
0 51183
1 50014
2 53382
3 51893

有了这个数据,我想创建另一个包含 2 列的数据框,即 XY 并将保存一行与另一行的比较。结果看起来像这样:

  X      Y
51183 50014
51183 53382
51183 51893
50014 53382
50014 51893
53382 51893

因此,这里发生的是,Rule ID 列中出现的第一个值,即 51183 与第二行中出现的第二个值进行比较,即,50014。所以 51183 存储在 X 列中,50014 存储在 Y 列中。类似地,51183 然后与第三行值(即 53382)进行比较,然后与 51893 进行比较。因此,在第一行值(51183)与它下面的所有行进行比较后,比较将移至下一行,即 50014,则该值将分别与5338251893比较,依此类推。

我尝试了这段代码,我尝试了 stack() 方法,但它似乎是错误的:

df1 = df.stack()
df1.columns = ['X', 'Y']

这里的df是存储Rule ID数据的dataframe。

如果你们能帮助我,我将不胜感激。

最佳答案

使用combinations使用 DataFrame 构造函数:

from itertools import combinations

df = pd.DataFrame(list(combinations(df['Rule ID'], 2)), columns=['x','y'])
print (df)
x y
0 51183 50014
1 51183 53382
2 51183 51893
3 50014 53382
4 50014 51893
5 53382 51893

关于python - 将数据帧的一行与相应的行进行比较,并将数据存储在两个单独的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57460330/

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