我试图将具有空值的列标题添加到我的数据帧(just like this answer)中,但是在已经对其进行了修改的函数中,如下所示:
corrplot
如果我在IPython控制台中单独运行这些行,它将添加它们。但是以脚本运行时,将添加newcol1,但不会添加2和3。设置mydf = pd.DataFrame()
def myfunc(df):
df['newcol1'] = np.nan # this works
list_of_newcols = ['newcol2', 'newcol3']
df = df.reindex(columns=df.columns.tolist() + list_of_newcols) # this does not
return
myfunc(mydf)
也不起作用。我在这里做什么错了?
答案 0 :(得分:2)
除非索引相等,熊猫df.reindex()
会产生一个新对象,因此您需要从函数中返回新对象。
def myfunc(df):
df['newcol1'] = np.nan # this works
list_of_newcols = ['newcol2', 'newcol3']
df = df.reindex(columns=df.columns.tolist + list_of_newcols) # this does not
return df
mydf = myfunc(mydf)
答案 1 :(得分:0)
不确定这是您在实际代码中还是在此处键入错误时所犯的错误,但是tolist()
是一个函数,您必须添加方括号。
df = df.reindex(columns=df.columns.tolist() + list_of_newcols)
答案 2 :(得分:0)
您无需设置for ii = 1:numel(start_bins)
res{ii} = mean(data(start_bins(ii):end_bins(ii),:),1);
end
值并再次指定 新列标签。您可以reindex
使用任意字符串列表; NaN
是未指定数据的默认值。
NaN