如何为数据框中的特定单元格设置值

时间:2018-11-17 00:02:15

标签: python pandas dataframe indexing

我有一个单元格,我想为其提供价值。我知道单元格的列名及其行号(但不知道其行索引)

  A B
h 1 2
n 3 4

说,我上面有数据框,我必须用列名“ B”更改第一行的单元格(我不知道它的索引“ h”)。

我尝试df['B'].iloc[0]=10,它可以工作,但是总是发出警告。

' SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame'

那么更改我的案例的单元格值的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

混合标签和位置索引需要一些额外的工作,因为:

  • loc / at专为标签而设计;
  • iloc / iat设计用于位置索引。

您可以将行位置索引转换为标签:

df.at[df.index[0], 'B'] = 10

或者您可以将列标签转换为位置索引:

df.iat[0, df.columns.get_loc('B')] = 10

注意:与at / iat相比,loc / iloc优先于标量访问/设置。