gpt4 book ai didi

python-2.7 - Pandas 数据框 : Pairwise division of columns without replacement

转载 作者:行者123 更新时间:2023-12-01 00:14:46 25 4
gpt4 key购买 nike

<分区>

我试图将所有列除以每一列,但只划分一次(A/B 但不是 B/A)

来自 Dividing each column by every other column and creating a new dataframe from the results

多亏了@COLDSPEED,以下代码将所有列除以每一列(并添加相应的新列)。

我不知道如何避免配对重复。

import pandas as pd
import numpy as np
np.random.seed(42)


df = pd.DataFrame(np.random.randint(0,9,size=(5, 3)), columns=list('ABC'))

ratio_df = pd.concat([df[df.columns.difference([col])].div(df[col], axis=0) \
for col in df.columns], axis=1)

print ratio_df

哪些输出:

原始数据框

   A  B  C
0 6 3 7
1 4 6 2
2 6 7 4
3 3 7 7
4 2 5 4

结果数据框

          B         C         A         C         A         B
0 0.500000 1.166667 2.000000 2.333333 0.857143 0.428571
1 1.500000 0.500000 0.666667 0.333333 2.000000 3.000000
2 1.166667 0.666667 0.857143 0.571429 1.500000 1.750000
3 2.333333 2.333333 0.428571 1.000000 0.428571 1.000000
4 2.500000 2.000000 0.400000 0.800000 0.500000 1.250000

在第 0 行中,第一列 B 的值为 B/A 或 3/6 = 0.5,第一列 A 为 A/B 或 6/3 = 2

我只想为配对操作保留一个结果(例如,只保留左列/右列)。

        A/B       A/C       B/C
0 2.000000 0.857143 0.428571
1 0.666667 2.000000 3.000000
2 0.857143 1.500000 1.750000
3 0.428571 0.428571 1.000000
4 0.400000 0.500000 1.250000

我找不到关于这件事的线索。

我该如何解决?

谢谢!

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