python - pandas添加一列 - 如何将一个空列添加到数据框?



pd dataframe增加一行 (4)

向pandas DataFrame对象添加空列的最简单方法是什么? 我遇到的最好的事情就是这样

df['foo'] = df.apply(lambda _: '', axis=1)

有没有一种不正当的方法?

https://src-bin.com


Answer #1

@ emunsing的answer对于添加多个列非常酷,但我无法在python 2.7中为它工作。 相反,我发现这个作品:

mydf = mydf.reindex(columns = np.append( mydf.columns.values, ['newcol1','newcol2'])

Answer #2

为了添加到帝斯曼的答案和建立在这个相关的问题上 ,我将这种方法分为两种情况:

  • 添加单个列:只需将空值分配给新列,例如df['C'] = np.nan

  • 添加多列:我建议使用.reindex(columns=[...]) 方法将新列添加到数据框的列索引。 这也适用于添加多个新行。

以下是添加多列的示例:

mydf = mydf.reindex( mydf.columns.tolist() + ['newcol1','newcol2'])  # version >= 0.20.0

要么

mydf = mydf.reindex( columns = mydf.columns.tolist() + ['newcol1','newcol2'])  # version < 0.20.0

您也可以将新的(空的)数据框连接到现有的数据框,但是这对我来说并不是pythonic :)


Answer #3

如果你想从列表中添加列名

df=pd.DataFrame()
a=['col1','col2','col3','col4']
for i in range(len(a)):
    df[a[i]]=np.nan

Answer #4

如果我理解正确,应该填写以下内容:

>>> df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})
>>> df
   A  B
0  1  2
1  2  3
2  3  4
>>> df["C"] = ""
>>> df["D"] = np.nan
>>> df
   A  B C   D
0  1  2   NaN
1  2  3   NaN
2  3  4   NaN




pandas