我有一个奇怪的问题,无法解决。我有一个看起来像这样的数据框子集
在数据框中,我使用以下代码添加“零”列:
subset['IRNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
subset['IPNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
我得到的结果与此类似
现在,当我执行与另一个数据框相似的操作时,我得到的零列包含NaN和零行,如下所示。这真是奇怪。
subset['IRNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
subset['IPNotional]=pd.DataFrame(numpy.zeros(shape=(len(subset),1)))
我不明白为什么有时我得到零,而另一些我得到NaN或NaN和零的混合。请帮忙
谢谢
答案 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)