我想通过使用 iloc 更改该值 代码如下
>>df1 = pd.DataFrame([[1,23,45],['x','y','z']],columns=['a','b','c'])
# df1 result
a b c
0 1 23 45
1 x y z
>>df1.loc[(df1['a']==1)].iloc[0,2] = 'dd'
# not change
# I want to show
a b c
0 1 23 dd
1 x y z
最佳答案
如果你想加入 loc
+ iloc
这是不可能的,你需要链条件,参见 cookbook 中的示例:
df1.loc[(df1.index == 0) & (df1['a']==1), df1.columns[2]] = 'dd'
print (df1)
a b c
0 1 23 dd
1 x y z
单独工作效果很好:
df1.iloc[0,2] = 'dd'
print (df1)
a b c
0 1 23 dd
1 x y z
<小时/>
df1.loc[df1['a']==1,'c'] = 'dd'
print (df1)
a b c
0 1 23 dd
1 x y z
关于python - 如何在按某些条件查询后更改 pandas DataFrame 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945688/