之所以将其NaN
放入一列中,是因为df.index
和Index
您右侧对象的有所不同。@zach显示了分配新的零列的正确方法。通常,pandas
尝试使索引尽可能地对齐。一个缺点是,当指数不对准你NaN
,无论他们是不是 一致。尝试使用reindex
和align
方法来获得一些直觉,以便对齐具有部分,完全和未对齐所有对齐索引的对象。例如,以下是DataFrame.align()
部分对齐索引的工作方式:
In [7]: from pandas import DataFrame
In [8]: from numpy.random import randint
In [9]: df = DataFrame({'a': randint(3, size=10)})
In [10]:
In [10]: df
Out[10]:
a
0 0
1 2
2 0
3 1
4 0
5 0
6 0
7 0
8 0
9 0
In [11]: s = df.a[:5]
In [12]: dfa, sa = df.align(s, axis=0)
In [13]: dfa
Out[13]:
a
0 0
1 2
2 0
3 1
4 0
5 0
6 0
7 0
8 0
9 0
In [14]: sa
Out[14]:
0 0
1 2
2 0
3 1
4 0
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
Name: a, dtype: float64