Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 为数据帧中的单元格设置值_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 为数据帧中的单元格设置值

Python 3.x 为数据帧中的单元格设置值,python-3.x,pandas,Python 3.x,Pandas,我有以下数据帧: K = pd.DataFrame({"A":[1,2,3,4], "B":[5,6,7,8]}) 然后我将第一行和第一列中的单元格设置为11: K.iloc[0]["A"] = 11 当我再次检查数据帧时,我看到赋值已经完成,K.iloc[0][“A”]等于11。但是,当我将列添加到此数据框并对新列中的单元格执行相同的操作时,赋值不成功: K["C"] = 0 K.iloc[0]["C"] = 11 因此,当我再次检查数据帧时,K.iloc[0][“C”]的值仍然为零。如

我有以下数据帧:

K = pd.DataFrame({"A":[1,2,3,4], "B":[5,6,7,8]})
然后我将第一行和第一列中的单元格设置为11:

K.iloc[0]["A"] = 11
当我再次检查数据帧时,我看到赋值已经完成,K.iloc[0][“A”]等于11。但是,当我将列添加到此数据框并对新列中的单元格执行相同的操作时,赋值不成功:

K["C"] = 0
K.iloc[0]["C"] = 11

因此,当我再次检查数据帧时,K.iloc[0][“C”]的值仍然为零。如果有人能告诉我这里发生了什么以及我如何解决这个问题,我将不胜感激。

如果默认索引,则可以使用
范围索引
,但它通过标签
0
设置索引值(与位置0相同):

您的解决方案失败的原因可能位于:

这有时会起作用,但不能保证,因此应避免:

dfc['A'][0]=111

可以通过以下方式获取列的位置来解决此问题:


为简单起见,我将以不同的顺序执行操作,并使用
loc

K.loc[0, 'C'] = 0
K.loc[0, ['A', 'C']] = 11

当您使用
K.iloc[0][“C”]
时,首先获取第一行,这样您就有了数据帧中片段的副本,然后获取列C。这样您就可以从片段而不是原始数据帧中更改副本

你的第一个电话,
K.iloc[0][“A”]=11
工作得很好,这在某种意义上说是幸运的

好习惯是在“一次性”中使用loc,因此您可以访问数据帧的原始值,而不是切片副本:

K.loc[0,"C"] = 11

请注意,iloc和loc是不同的功能,即使它们在这里看起来非常相似。

loc
应该可以工作:

K.loc[0]['C'] = 11
K.loc[0, 'C'] = 11
上述两种版本的
loc
都能为数据帧
K
赋值

K.loc[0,"C"] = 11
K.loc[0]['C'] = 11
K.loc[0, 'C'] = 11