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
为什么我没有得到元素明智的划分?
我期待一个元素明智的划分
通常,当您在数据帧之间进行这样的操作时,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