如何将值设置为pandas DataFrame列?

时间:2017-03-28 16:19:54

标签: python pandas

例如,

我有一个df喜欢:

    x    y
A   1    1
B   2    2
C   3    3

我想更改列' y'像这样的价值观:

    x    y
A   1    56
B   2    45
C   3    34

我有一个数组a = [56, 45, 34]

中的值

我可以使用.set_value:

更改值
df.set_value('A', 'y', a[0])
df.set_value('B', 'y', a[1])  
df.set_value('C', 'y', a[2])

但如果df是数组,我可以这样做:

df[:, 1] = a

是否有类似上述方法将值设置为DataFrame列?

3 个答案:

答案 0 :(得分:2)

您可以尝试:

df.loc[:, 'Y'] = a

这应该将df的所有索引,列' Y'设置为数组a,而不包含SettingWithCopyWarning消息。根据pandas-doc,这也是推荐的方法。

答案 1 :(得分:1)

创建数据框:

df
Out[]: 
   x  y
A  1  1
B  2  2
C  3  3

您可以使用iloc函数并将数组传递给它,如下所示:

df['y'].iloc[0:3]=[56, 45, 34]

df
Out[]: 
   x   y
A  1  56
B  2  45
C  3  34

答案 2 :(得分:0)

您只需要以下内容:

df['Y'] = a