我的数据框的行包含以下内容:
id animal
1 tiger
我想简单地“设置”1的值,比如“狮子”。
contains_latlong.iloc[1]["animal"]="lion"
是熊猫不喜欢的东西。我认为,新的,我正在混淆复制和修改数据帧。警告是
SettingWithCopyWarning: 尝试在DataFrame
的切片副本上设置值
设置单元格的给定值的方法是什么? (而且,一般来说,我该怎么想这个?)
修改:str.replace
不是我在这里寻找的。我只想用其他字符串(文字)替换该单元格的内容(无论是什么,而不是正则表达式)
答案 0 :(得分:2)
通常,方法是使用索引和列标识符:
df.loc[1, 'id'] = 'Lion'
产量
animal id
1 tiger Lion
没有任何警告。
您的示例使用" iloc
"而不是" loc
",这意味着您需要按索引访问列和索引,而不是名称。像df.iloc[0, 0] = 'Lion'
这样的内容可能会在您的示例中有效,假设您显示的是没有索引的完整行。