将具有常数值的列添加到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
。 利用reindex
和align
方法来获得一些直觉,以便与具有部分,全部和不全部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