python - 如何在按某些条件查询后更改 pandas DataFrame 值

标签 python pandas

我想通过使用 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/

相关文章:

python - 错误 "' numpy.ndarray'对象没有属性 'values'"

python - 聚合包含数据帧的字典

python - 使用 Keras 进行免分割手写文本识别

python - 使用自定义函数计算 pandas 的每日聚合

python - 在 python 类的 init 函数中使用 pandas fillna

python - 如何读取非常大的 CSV 中的一小部分行。 Pandas - 时间序列 - 大型数据集

python - socket.recvfrom_into() 类型错误 : buffer is read-only

python - 将反引号 (`) + 分数的字符串转换为 float

python - 未能安装 python 包(osmium)

python - 按组计算百分位数,然后添加到现有数据框