【问题标题】:How to overwrite a value with another one in pandas [duplicate]如何在熊猫中用另一个值覆盖一个值[重复]
【发布时间】:2021-08-06 11:36:29
【问题描述】:

我已经准备好了数据框

Col1 Col2
0 a1 temp
1 b1 temp
2 c1 temp

我用df['Col2'] = 'temp'准备了Col2

我想只覆盖 Col2 row0,并尝试以下代码。

df['Col2'][0] = 'a'

但是我得到了以下错误。

IndexError:列表索引超出范围

【问题讨论】:

  • df.at[0, 'Col2']df.iat[0, 1]。参见pandas loc vs. iloc vs. at vs. iat?.
  • 你也可以使用loc try: df.loc[0,'Col2']='new_Value' 来获取col1的第一个元素。
  • df['Col2'][0] = 'a' 为我工作
  • 您的代码 df['Col2'][0] = 'a' 适合我。语法非常好。因此,一个可能的原因是您的行索引不包含 0。在这种情况下,如果您想修改第一行,可以使用:df['Col2'].iloc[0] = 'a'。跨度>

标签: python pandas


【解决方案1】:

请尝试使用 iloc 函数

df = pd.DataFrame({'col1':[1, 2, 3], 'col2':['temp', 'temp', 'temp']})
df.iloc[2:, 1:] = 'R'

应该可以工作。

注意 - 还有很多其他方法。

【讨论】:

    【解决方案2】:

    您需要先按行索引,然后使用 .loc 访问器按列索引:

    df.loc[0, 'Col2'] = 'a'
    

    【讨论】:

      猜你喜欢
      • 2018-08-24
      • 2021-07-12
      • 2013-10-14
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 2021-01-19
      相关资源
      最近更新 更多