簡體   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