将具有常数值的列添加到pandas数据框

我不知道为什么这把NaN纳入“新”专栏?

df['new'] = pd.Series([0 for x in range(len(df.index))]) 

编辑:

 df['new'] = 0 

工作:)

NaN放到列中的原因是因为df.index和你右边对象的Index是不同的。 @zach显示了分配一个新的零列的正确方法。 一般来说, pandas尽可能地尽可能多地对索引进行排列。 一个缺点是,如果指数不一致,那么只要NaN不alignment,就会得到NaN 。 利用reindexalign方法来获得一些直觉,以便与具有部分,全部和不全部alignment的索引的对象进行alignment。 例如,下面是DataFrame.align()如何与部分alignment的索引一起工作:

 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