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