将列添加到具有恒定值的数据框

Posted

技术标签:

【中文标题】将列添加到具有恒定值的数据框【英文标题】:Add column to dataframe with constant value 【发布时间】:2015-06-13 13:17:55 【问题描述】:

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

现有的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”。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

你可以:

assign(**kwargs):

 df.assign(Name='abc')

访问新的列系列(它将被创建)并设置它:

 df['Name'] = 'abc'

insert(loc, column, value, allow_duplicates=False)

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

参数 loc ( 0

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

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

【讨论】:

【参考方案4】:

单班轮作品

df['Name'] = 'abc'

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

【参考方案6】:

您只需执行以下操作:

df['New Col'] = pd.Series(["abc" for x in range(len(df.index))])

【讨论】:

谢谢,这对于避免该死的链式索引警告非常有用。

以上是关于将列添加到具有恒定值的数据框的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:合并具有不同索引和缺失值的两个数据框

将列添加到数据框列表并进行增量添加/循环通过 df 进行简单添加

python 将列添加到数据框的前面

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

熊猫(python):如何将列添加到数据框以进行索引?

pyspark将列添加到列表中已经不存在的数据框