使用默认值将列添加到dataframe

时间:2015-04-08 14:09:22

标签: python pandas

我有一个现有的数据框,我需要添加一个额外的列,每行包含相同的值。

现有的df:

Date, Open, High, Low, Close
01-01-2015, 565, 600, 400, 450

新df:

Name, Date, Open, High, Low, Close
abc, 01-01-2015, 565, 600, 400, 450

我知道如何附加现有的系列/数据框列。但这是一种不同的情况,因为我只需要添加“名称”列并将每一行设置为相同的值,在本例中为“abc”。

我不完全确定如何做到这一点。

5 个答案:

答案 0 :(得分:185)

df['Name']='abc'将添加新列并将所有行设置为该值:

In [79]:

df
Out[79]:
         Date, Open, High,  Low,  Close
0  01-01-2015,  565,  600,  400,    450
In [80]:

df['Name'] = 'abc'
df
Out[80]:
         Date, Open, High,  Low,  Close Name
0  01-01-2015,  565,  600,  400,    450  abc

答案 1 :(得分:40)

您可以使用insert指定新列的位置。在这种情况下,我使用0将新列放在左侧。

df.insert(0, 'Name', 'abc')

  Name        Date  Open  High  Low  Close
0  abc  01-01-2015   565   600  400    450

答案 2 :(得分:29)

单线程

df['Name'] = 'abc'

创建Name列并将所有行设置为abc

答案 3 :(得分:20)

总结其他人建议的内容,并添加第三种方式

你可以:

  • assign(**kwargs)

    df.assign(Name='abc')
    
  • 访问新列系列(将创建它)并设置它:

    df['Name'] = 'abc'
    
  • insert(loc, column, value, allow_duplicates=False)

    df.insert(0, 'Name', 'abc')
    

    其中参数loc(0< = loc< = len(columns))允许您将列插入所需的位置。

    ' LOC'为您提供插入后列将位于的索引。例如,上面的代码将列Name作为第0列插入,即它将在第一列之前插入,成为新的第一列。 (索引从0开始)。

所有这些方法都允许您从系列中添加新列(只需用上面的' abc'默认参数替换系列)。

答案 4 :(得分:0)

One Line 为我完成了这项工作。

df['New Column'] = 'Constant Value'
df['New Column'] = 123