繁体   English   中英

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

[英]How to set values for particular cells in pandas.Dataframe correctly?

我已经创建了一个pandas DataFrame

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

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

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

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

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

而是使用pd.DataFrame.loc指定行和列:

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

.loc索引器接受列表,标量或布尔数组。

pandas文档详细解释了为什么应该避免链式索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM