我有一个包含Name
和name
列的数据框。
我正在这样做:
for i in range(len(df)):
if (some condition):
df['name'][i] = df['Name'][i]
但是我收到了这个警告:
正在尝试在DataFrame
的切片副本上设置值
运行需要一段时间,这与警告有关吗?
我该怎么做?
答案 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!"的链接。