如何将空列添加到数据框中?

新手上路,请多包涵

向熊猫 DataFrame 对象添加空列的最简单方法是什么?我偶然发现的最好的是

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

有没有不那么反常的方法?

原文由 kjo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 772
2 个回答

如果我理解正确,作业应填写:

 >>> import numpy as np
>>> import pandas as pd
>>> 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

原文由 DSM 发布,翻译遵循 CC BY-SA 4.0 许可协议

为了添加到 DSM 的答案并建立在 这个相关问题 的基础上,我将这种方法分为两种情况:

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

  • 添加多列:我建议使用 pandas 的 .reindex(columns=[...]) 方法 将新列添加到数据框的列索引中。这也适用于使用 .reindex(rows=[...]) 添加多个新行。请注意,较新版本的 Pandas (v>0.20) 允许您指定 axis 关键字,而不是显式分配给 columnsrows

这是添加多列的示例:

 mydf = mydf.reindex(columns = mydf.columns.tolist() + ['newcol1','newcol2'])

要么

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

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

原文由 emunsing 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题