Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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 如何正确设置pandas.Dataframe中特定单元格的值?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何正确设置pandas.Dataframe中特定单元格的值?

Python 如何正确设置pandas.Dataframe中特定单元格的值?,python,pandas,dataframe,Python,Pandas,Dataframe,我已经创建了一个数据帧 df=DataFrame(np.arange(15).重塑(3,5),列=['a','b','c','d','e']) 我想为特定单元格设置值: flag = df['b'] > 3 df[flag]['b']=10 但是它不起作用 df a b c d e 0 0 1 2 3 4 1 5 6 7 8 9 2 10 11 12 13 14 我使用以下代码有效,但我不知道为什么? df['b'

我已经创建了一个数据帧

df=DataFrame(np.arange(15).重塑(3,5),列=['a','b','c','d','e'])

我想为特定单元格设置值:

flag = df['b'] > 3 

df[flag]['b']=10
但是它不起作用

df  a   b   c   d   e
0   0   1   2   3   4
1   5   6   7   8   9
2  10  11  12  13  14
我使用以下代码有效,但我不知道为什么?

df['b'][flag]=10

df  a   b   c   d   e
0   0   1   2   3   4
1   5  10   7   8   9
2  10  10  12  13  14

不要使用链式索引来分配值

而是使用指定行和列:

df.loc[df['b'] > 3, 'b'] = 10
.loc
索引器接受列表、标量或布尔数组

pandas
记录了为什么应该避免链式索引

df.loc[df['b'] > 3, 'b'] = 10