在pandas中的列之间复制值

时间:2015-12-29 17:15:23

标签: python pandas dataframe

我有一个包含Namename列的数据框。

我正在这样做:

for i in range(len(df)):
    if (some condition):
        df['name'][i] = df['Name'][i]

但是我收到了这个警告:

  

正在尝试在DataFrame

的切片副本上设置值

运行需要一段时间,这与警告有关吗?

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以尝试loc

df.loc[df['name'].notnull() , 'Name'] = df['name']

SettingWithCopyWarning的非常好的解释。

所以一般:

df.loc[some condition , 'Name'] = df['name']

答案 1 :(得分:1)

您不想使用链式分配。您应该使用{ "_id" : "3213dsadsa812321", "files" : [ { "_id" : "99303", "path" : "C:Filename04.txt" } ] }

.loc

有关详细信息,请参阅此SO post

这是相关Pandas文档"Why does the assignment when using chained indexing fail!"的链接。