这是我的第一个数据框A1的标题:

            K37L  K37M  K37N  K37P  K37Q  K37R  K37S  K37T  K37U  K37V  ...   \
1997-01-01  79.8  80.4  72.8  36.7   0.0  90.0  96.9  92.2  79.8  93.7  ...
1997-02-01  79.1  81.7  73.6  36.7   0.0  90.2  97.4  92.2  80.3  93.5  ...
1997-03-01  79.2  80.8  73.2  37.0   0.0  90.3  97.5  92.0  80.4  93.2  ...

            K385  K386   K387  K388  K389  K38A  K38B  K38C  K38D  K38E
1997-01-01  67.4  79.1  227.0  83.8  82.1  94.0  74.2  88.4  81.1  73.9
1997-02-01  67.5  79.2  220.9  83.9  82.1  94.2  74.5  88.5  81.1  74.3
1997-03-01  67.5  79.3  218.9  84.0  82.2  94.3  74.7  88.7  81.1  74.4

[3 rows x 27 columns]


这是第二个数据帧A2的标题:

            K37L  K37M  K37N  K37P  K37Q  K37R  K37S  K37T  K37U  K37V  ...   \
1996-01-01  78.9  79.4  71.7  36.7   0.0  88.7  94.1  90.7  80.2  98.9  ...
1996-02-01  79.3  81.0  72.7  36.7   0.0  88.7  94.3  90.9  79.8  98.7  ...
1996-03-01  79.8  80.4  72.7  36.7   0.0  89.0  94.6  91.0  79.6  98.6  ...

            K385  K386   K387  K388  K389  K38A  K38B  K38C  K38D  K38E
1996-01-01  70.9  78.7  257.8  83.9  79.7  92.2  73.8  86.4  79.6  74.0
1996-02-01  70.7  78.7  257.2  83.9  79.8  92.6  73.7  86.6  79.9  73.9
1996-03-01  70.9  78.7  257.3  83.9  80.1  92.6  73.8  87.2  80.1  74.0

[3 rows x 27 columns]


我想做的是:A2 //(A1-1)* 100

最重要的部分是我想将A1中的所有值除以A2。

我的尝试:

A3 = A2 / (A1-1)*100
print(A3.head(3))


产量:

            K37L  K37M  K37N  K37P  K37Q  K37R  K37S  K37T  K37U  K37V  ...   \
1996-01-01   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...
1996-02-01   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...
1996-03-01   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN  ...

            K385  K386  K387  K388  K389  K38A  K38B  K38C  K38D  K38E
1996-01-01   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN
1996-02-01   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN
1996-03-01   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN

[3 rows x 27 columns]


是否可以将整个数据框(其值)与另一个数据框分开?还是我必须构造某种复杂的循环才能实现这一目标?

最佳答案

这是因为大熊猫将按索引(此处按日期)进行匹配以应用该划分。日期不匹配,因此不会进行任何操作。

您可以尝试以下方法:

A3 = A2.reset_index(drop=True) / (A1.reset_index(drop=True) - 1) * 100


然后,您可以重新应用所需的任何索引:

A3.index = A1.index  # for instance

关于python - 是否可以将一个数据框与另一个数据框分开?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46342953/

10-12 17:53