Привет, скажем, у меня есть dataframe, и я хочу добавить текст в выбранные ячейки с условием. Условие состоит в том, что ячейки не наносятся:
Информационный кадр:
index Column1
1 nan
2 name1
3 name2
4 name4
Меня интересуют только ячейки с 2 по 3 и проверяют, не являются ли они нанки. Я хочу добавить строку типа str_2_add.
Финал должен выглядеть так:
index Column1
1 nan
2 name1 str_2_add
3 name2 str_2_add
4 name4
Каков наилучший способ сделать это. Большое спасибо.
Использование pd.DataFrame.loc
и pd.Series.notnull
:
df.loc[df['Column1'].notnull() & df['index'].isin([2, 3]), 'Column1'] += ' str_2_add'
print(df)
index Column1
0 1 NaN
1 2 name1 str_2_add
2 3 name2 str_2_add
3 4 name4
Используйте метод where. (или маску)
#these are equivalent
df.where(df == "nan", df + "str_2_add")
df.mask(df != "nan", df + "str_2_add")