Python 数据帧上的组合

Python 数据帧上的组合,python,pandas,Python,Pandas,我有一个包含点的熊猫数据框,我想找到这些点之间的所有可选线。 数据样本: x_val y_val 114 1.28 1.72 90 3.47 3.71 37 0.13 1.86 我尝试了以下方法: H = x_s.apply(lambda x: list(combinations(x.values, 2))) 但结果与预期不符,x/y值参差不齐: 114(1.28,3.47)(1.72,3.71) 90(1.28,0.13)(1.72,1

我有一个包含点的熊猫数据框,我想找到这些点之间的所有可选线。 数据样本:

     x_val  y_val
114   1.28   1.72
90    3.47   3.71
37    0.13   1.86
我尝试了以下方法:

       H = x_s.apply(lambda x: list(combinations(x.values, 2)))
但结果与预期不符,x/y值参差不齐:

114(1.28,3.47)(1.72,3.71)

90(1.28,0.13)(1.72,1.86)

37(3.47,0.13)(3.71,1.86)

所以第一个元组是X的混合,第二个是Y的混合,我在寻找由两个原始点构成的线。
我现在知道如何重新排序,但是否有任何选项可以首先获得这些结果并保存不必要的重新排序?

您可以浏览索引:

b = {'{}_{}'.format(idx1, idx2): (df.loc[idx1].values, df.loc[idx2].values) for idx1, idx2 in combinations(df.index, 2)}

pd.DataFrame(b).transpose()
这将为您提供:

                   0             1
114_90  [1.28, 1.72]  [3.47, 3.71]
114_37  [1.28, 1.72]  [0.13, 1.86]
90_37   [3.47, 3.71]  [0.13, 1.86]


您可以浏览索引:

b = {'{}_{}'.format(idx1, idx2): (df.loc[idx1].values, df.loc[idx2].values) for idx1, idx2 in combinations(df.index, 2)}

pd.DataFrame(b).transpose()
这将为您提供:

                   0             1
114_90  [1.28, 1.72]  [3.47, 3.71]
114_37  [1.28, 1.72]  [0.13, 1.86]
90_37   [3.47, 3.71]  [0.13, 1.86]


是否可以粘贴此的预期输出?是否可以粘贴此的预期输出?