установка значения первого элемента с помощью iloc

#pandas

#pandas

Вопрос:

 import pandas as pd
import numpy as np
df=pd.DataFrame({"item":['a','a','a','b'],"item1":['b','d',np.nan,'c']})
 

Содержимое df

   item item1
0    a     b
1    a     d
2    a   NaN
3    b     c
 

Я хочу изменить значение второго элемента «item» на 1, следующее не работает

 df.iloc[0,"item"]="b"
 

Мой ожидаемый результат:

   item item1
0    a     b
1    1     d
2    a   NaN
3    b     c
 

Каков правильный способ добиться этого?

Ответ №1:

Используется Index.get_loc для определения положения столбца item , поэтому возможно установить значение в DataFrame.iloc :

 df.iloc[1, df.columns.get_loc("item")] = 1
 

Или с помощью DataFrame.loc :

 #if any unique index
df.loc[df.index[1], "item"] = 1

#if default index
df.loc[1, "item"] = 1
 

 print (df)
  item item1
0    a     b
1    1     d
2    a   NaN
3    b     c