为什么两个各一列的数据帧之间的元素明智划分会导致 NaN 和两列?

问题描述 投票:0回答:1
import pandas as pd

df0 = pd.DataFrame({'a': [864371.0, 864383.0, 864364.0, 864381.0, 864364.0]})

df1 = pd.DataFrame({'b': [867318.0, 867315.0, 867323.0, 867331.0, 867327.0]})

df0/df1
    a   b
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 NaN NaN

为什么我没有得到元素明智的划分?

我期待一个元素明智的划分

python dataframe nan division
1个回答
0
投票

通常,当您在数据帧之间进行这样的操作时,pandas 在执行操作之前会对齐轴。这意味着它不会只是将 df1 中的任何元素除以 df2 中看起来处于相同位置的任何元素。相反,它会将 df1 中的任何元素除以 df2 中具有相同索引值和相同列名称的元素。

在您的示例中,两个数据帧具有相同的索引,因此索引对齐按您的预期工作。但列名不同。因此,为了获得您期望的结果,可以按照 Mark 的建议将其中一列重命名为另一个数据帧中的列名称,或者将一个系列显式除以另一个系列:

df0.a / df1.b
0    0.996602
1    0.996619
2    0.996588
3    0.996599
4    0.996584
dtype: float64
© www.soinside.com 2019 - 2024. All rights reserved.