当前位置: 首页 > 面试题库 >

将多个空列添加到pandas DataFrame

南门新荣
2023-03-14
问题内容

如何将多个空列添加到DataFrame列表中的?

我可以:

    df["B"] = None
    df["C"] = None
    df["D"] = None

但是我不能:

    df[["B", "C", "D"]] = None

KeyError: "['B' 'C' 'D'] not in index"


问题答案:

concat使用的是DataFrame:

In [23]:
df = pd.DataFrame(columns=['A'])
df

Out[23]:
Empty DataFrame
Columns: [A]
Index: []

In [24]:    
pd.concat([df,pd.DataFrame(columns=list('BCD'))])

Out[24]:
Empty DataFrame
Columns: [A, B, C, D]
Index: []

因此,通过传递包含原始df的列表以及包含您要添加的列的新列表,这将返回包含其他列的新df。

警告:请参阅其他答案和/或评论讨论中有关性能的讨论。reindex在性能至关重要的情况下可能更可取。

例:
您可以df.reindex用来添加新列:

In [18]: df = pd.DataFrame(np.random.randint(10, size=(5,1)), columns=['A'])

In [19]: df
Out[19]: 
   A
0  4
1  7
2  0
3  7
4  6

In [20]: df.reindex(columns=list('ABCD'))
Out[20]: 
   A   B   C   D
0  4 NaN NaN NaN
1  7 NaN NaN NaN
2  0 NaN NaN NaN
3  7 NaN NaN NaN
4  6 NaN NaN NaN

reindex 将返回一个新的DataFrame,其列按列出的顺序显示:

In [31]: df.reindex(columns=list('DCBA'))
Out[31]: 
    D   C   B  A
0 NaN NaN NaN  4
1 NaN NaN NaN  7
2 NaN NaN NaN  0
3 NaN NaN NaN  7
4 NaN NaN NaN  6

该reindex方法也作为fill_value参数:

In [22]: df.reindex(columns=list('ABCD'), fill_value=0)
Out[22]: 
   A  B  C  D
0  4  0  0  0
1  7  0  0  0
2  0  0  0  0
3  7  0  0  0
4  6  0  0  0


 类似资料:
  • 问题内容: 与此问题类似,如何将空列添加到数据框?,我想知道向DataFrame添加一列空列表的最佳方法。 我想要做的基本上是初始化一列,然后遍历行以处理其中的一些行,然后在此新列中添加填充列表以替换初始化的值。 例如,如果下面是我的初始DataFrame: 然后,我最终希望得到这样的结果,其中每一行都经过单独处理(显示了示例结果): 当然,如果我尝试像使用其他任何常量一样进行初始化,它会认为我正

  • 问题内容: 将空列添加到pandas对象的最简单方法是什么?我偶然发现的最好的东西是 有没有那么不合常理的方法? 问题答案: 如果我理解正确,则应填写作业:

  • 向pandas对象添加空列的最简单方法是什么?我偶然发现的最好的东西是 有没有一种不那么反常的方法?

  • 我想合并/添加一个新泽西项目B(已经运行良好)到一个新泽西项目a,这将充当一个过滤器/安全层。因此,作为一个基本步骤,我在项目a的构建路径上向项目B添加了依赖项,并在构建路径中向部署程序集添加了相同的依赖项。我从这篇文章中了解到,我可以通过将servlet放在同一个中,并使用以不同的方式映射它们来实现这一点。当我试图访问项目B的资源时,我没有任何运气。 因此,当我尝试访问时,它工作得很好。但是当我

  • 问题内容: 假设我有很多字符串变量(例如100): 我想将这些String变量添加到ArrayList中,我现在正在做的是 我很好奇,有没有办法使用循环?例如。 问题答案: 使用数组: 这个想法非常流行,以至于有内置的方法可以做到这一点。例如: 会将您的数组元素添加到现有列表中。如果只需要一个仅包含数组元素的列表,则可以一行执行:

  • 假设我有一个数据框 和列名称列表 如何将新列添加到以零为值的数据帧中?