【发布时间】:2021-11-22 07:35:15
【问题描述】:
考虑这个小脚本:
import pandas as pd
aa = pd.DataFrame({'a': [1,2,3]})
bb = aa.a
bb.index = bb.index + 1
aa['b'] = bb
print(aa)
print(aa.a - aa.b)
输出是:
a b
0 1 NaN
1 2 1.0
2 3 2.0
0 NaN
1 0.0
2 0.0
3 NaN
虽然我期待 aa.a - aa.b 是
0 NaN
1 1.0
2 1.0
这怎么可能?是 Pandas 的 bug 吗?
【问题讨论】:
-
有趣的是,
aa.index和aa.a.index是不同的。看起来 pandas 通过替换引用的索引(在bb.index = bb.index + 1中)感到困惑。 -
没错。这是预期的行为(我可以找到记录此内容的地方吗?)还是错误?
标签: python pandas dataframe indexing series