向数据框添加零列

时间:2018-11-14 15:30:31

标签: python-3.x pandas dataframe

我有一个奇怪的问题,无法解决。我有一个看起来像这样的数据框子集

enter image description here

在数据框中,我使用以下代码添加“零”列:

subset['IRNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
subset['IPNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))

我得到的结果与此类似

enter image description here

现在,当我执行与另一个数据框相似的操作时,我得到的零列包含NaN和零行,如下所示。这真是奇怪。

subset['IRNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
    subset['IPNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))

enter image description here

我不明白为什么有时我得到零,而另一些我得到NaN或NaN和零的混合。请帮忙

谢谢

1 个答案:

答案 0 :(得分:6)

我相信您需要assign和字典来设置新的列名:

subset = subset.assign(**dict.fromkeys(['IRNotional','IPNotional'], 0))
#you can define each column separately
#subset = subset.assign(**{'IRNotional': 0, 'IPNotional': 1})

或更简单:

subset['IRNotional'] = 0
subset['IPNotional'] = 0
  

现在,当我执行与另一个数据框相似的操作时,我得到的零列包含NaN和零行,如下所示。这真是奇怪。

我认为问题是索引值不同,因此必须创建相同的索引,否则对于不匹配的索引将获得NaN

subset['IPNotional']=pd.DataFrame(numpy.zeros(shape=(len(subset),1)), index=subset.index)