为什么在两个数据帧之间按元素划分,每个数据帧一列,结果为 NaN,两列?

Why element wise division between two dataframes with one column each result in NaN and two columns?

提问人:jjw 提问时间:9/5/2023 最后编辑:Markjjw 更新时间:9/5/2023 访问量:36

问:

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 数据帧 NAN 划分

评论

0赞 Community 9/5/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。
0赞 phuclv 9/5/2023
为什么我不应该上传代码/数据/错误的图像?
0赞 Mark 9/5/2023
我认为主要问题是列需要具有相同的名称,如果您这样做的话

答:

2赞 Arne 9/5/2023 #1

通常,当您在这样的数据帧之间进行操作时,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