例如,
我有一个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列?
答案 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