当前位置: 首页 > 知识库问答 >
问题:

将列表中的多个零值列添加到数据框中

蒙光华
2023-03-14

假设我有一个数据框

id col1 col2
1  1    foo
2  1    bar

和列名称列表

l = ['col3', 'col4', 'col5']

如何将新列添加到以零为值的数据帧中?

id col1 col2 col3 col4 col5
1  1    foo     0    0    0
2  1    bar     0    0    0

共有1个答案

孔君浩
2023-03-14

您可以尝试直接赋值(假设您的数据帧名为df):

for col in l:
    df[col] = 0

或者使用DataFrame的分配方法,如果l可以包含值、数组或任何熊猫系列构造函数,这是一种稍微简单的方法。

# create a dictionary of column names and the value you want
d = dict.fromkeys(l, 0)
df.assign(**d)

关于分配方法的文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.assign.html

 类似资料:
  • 很容易将列表列表转换为数据帧: 但是我如何将df转换回列表列表呢?

  • 问题内容: 我试图基于一个的数据创建“ n” 。我正在检查in的Integer值,并循环执行sql语句以创建与列中一样多的“ n” 。 这是我的代码: 我需要创建“ n”,但我不知道如何在循环之前声明类型并在for内填充。 现有数据类型: 新的数据类型: 问题答案: 您可以创建一个可变列表并填充它: 但是更好的方法(不使用可变数据结构)是将整数列表 映射 到DataFrames列表中:

  • 问题内容: 我有一些像这样的数据框: A中值 的 可能范围仅为0到7 。 另外,我有一个8个元素的列表,如下所示: 如果A列中的元素是 n ,我需要将List中的第 n 个元素插入新列,例如’D’。 如何一口气做到这一点而又不遍历整个数据框? 产生的数据框如下所示: 注意:数据框很大,迭代是最后一个选项。但是如果需要的话,我也可以将其他数据结构(如dict)排列在“ List”中的元素上。 问题答

  • 我有一个如下的数据帧: 我想将其转换为如下内容: B中重复的值是列名称,其值在C列中。我希望它们是数据帧的列 事实上,数据集是通过展平一棵树创建的,其中有更多的列,每个列都是一个内部节点。第一列是根,C是叶 以下是我的一些尝试: 然而,它不起作用。

  • 问题内容: 我有一个现有的数据框,我需要添加一个额外的列,每行将包含相同的值。 现有的df: 新的df: 我知道如何追加现有的series / dataframe列。但这是另一种情况,因为我所需要的只是添加“名称”列,并将每一行设置为相同的值,在本例中为“ abc”。 问题答案: 将添加新列并将所有行设置为该值:

  • 我在从一个表中插入一个列的值作为另一个表中的列时遇到了麻烦。我在col1中有一些值的表A:和另一个列等于col1值的表B。 我想把表A,col1中的其余值添加为表B中的列。请帮助我解决我的问题。我正在使用SQL server 2012。