【发布时间】:2018-07-19 00:48:10
【问题描述】:
我有这个数据框
import pandas as pd
x = pd.DataFrame.from_dict({'A':[1,2,0,4,0,6], 'B':[0, 0, 0, 44, 48, 81], 'C':[1,0,1,0,1,0]})
我试着改成这样,但是不行
x[x['A']>3]['A'] = 33 # has no effect
我也试过
x.loc(x['A']>3)['A'] = 33 # getting an error
那么正确的做法是什么?
【问题讨论】:
-
使用
x.loc[x['A'].gt(3), 'A'] = 33 -
回答 OP 的问题,
x[x['A']>3]['A'] = 33不会就地修改数据框;而是复制数据帧的一部分并修改副本。使用.loc并将您的索引(行和列)放在同一个方括号内以修改数据框本身。