我正在尝试采用一个数据框并创建另一个数据框,并使用列的所有可能组合以及相应值之间的差,即11-apr列AB应为(B-A)= 0等。

例如,从

        Dt              A           B           C          D
        11-apr          1           1           1          1
        10-apr          2           3           1          2

我如何获得一个新的框架,如下所示:

pandas - 数据框-pandas/python中列的所有可能组合-LMLPHP

我遇到了以下帖子,但无法将其转置为专栏文章。

Aggregate all dataframe row pair combinations using pandas

最佳答案

您可以使用:

from itertools import combinations
df = df.set_index('Dt')

cc = list(combinations(df.columns,2))
df = pd.concat([df[c[1]].sub(df[c[0]]) for c in cc], axis=1, keys=cc)
df.columns = df.columns.map(''.join)
print (df)
        AB  AC  AD  BC  BD  CD
Dt
11-apr   0   0   0   0   0   0
10-apr   1  -1   0  -2  -1   1

关于pandas - 数据框-pandas/python中列的所有可能组合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43347939/

10-14 11:42
查看更多