如何将列添加到空的pandas数据帧?

时间:2018-05-16 13:29:30

标签: python pandas dataframe

我有一个空的dataframe

df=pd.DataFrame(columns=['a'])

出于某种原因,我想生成df2,另一个空数据帧,有两列' a'和' b'。

如果我这样做

df.columns=df.columns+'b'

它不起作用(我将列重命名为' ab') 并且以下都没有

df.columns=df.columns.tolist()+['b']

如何添加单独的列' b'到df,df.emtpy继续True

也不可能使用.loc

   df.loc[:,'b']=None

返回

  Cannot set dataframe with no defined index and a scalar

5 个答案:

答案 0 :(得分:12)

以下是将空列添加到空数据框的几种方法:

df=pd.DataFrame(columns=['a'])
df['b'] = None
df = df.assign(c=None)
df = df.assign(d=df['a'])
df['e'] = pd.Series(index=df.index)   
df = pd.concat([df,pd.DataFrame(columns=list('f'))])
print(df)

<强>输出

Empty DataFrame
Columns: [a, b, c, d, e, f]
Index: []

我希望它有所帮助。

答案 1 :(得分:9)

如果您只是df['b'] = None,那么df.empty仍然是True,df是:

Empty DataFrame
Columns: [a, b]
Index: []

编辑: 要从df2列创建空df并添加新列,您可以执行以下操作:

df2 = pd.DataFrame(columns = df.columns.tolist() + ['b', 'c', 'd'])

答案 2 :(得分:5)

这是一种方式:

#define BOOST_LIB_NAME "boost_numpy36"

此方法的优点是您可以添加任意数量的列而无需显式循环。

此外,如果没有数据,这符合您LNK1104: cannot open file 'libboost_pythonPY_MAJOR_VERSIONPY_MINOR_VERSION-vc120-mt-gd-x32-1_67.lib' 评估df2 = df.copy() df2 = df2.join(pd.DataFrame(columns=['b'])) 的要求。

答案 3 :(得分:4)

如果您想同时添加多个列,也可以重新编制索引。

new_cols = ['c', 'd', 'e', 'f', 'g']
df2 = df.reindex(df.columns.union(new_cols), axis=1)

#Empty DataFrame
#Columns: [a, c, d, e, f, g]
#Index: []

答案 4 :(得分:3)

您可以在此使用http://

concat