У меня есть список с номерами индексов l1, и я хочу заменить значения в столбце A на NaN на основе этих номеров индексов.
Текущие данные
Index A
0 Reviewer: Newbie | 35-44 on Treatment for 1
1 Reviewer: 45-54 on Treatment for less than 1
2 Reviewer: Ocetech| 65-74 Male on Treatment
3 Reviewer: virleo| 55-64 Female on Treatment
4 Reviewer: Diane perrin| 65-74 on Treatment for
l1 = [1, 3, 4]
Ожидаемый результат
Index A
0 Reviewer: Newbie | 35-44 on Treatment for 1
1 NaN
2 Reviewer: Ocetech| 65-74 Male on Treatment
3 NaN
4 NaN






Используйте .loc для поиска индекса в l1 в вашем фрейме данных, а затем назначьте np.nan следующим образом:
import numpy as np
df.loc[l1,'A'] = np.nan
Просто к деталям после воспроизведения вашего DataFrame ..
Также импортируйте numpy, чтобы установить значения Nan на желаемый индекс.
import pandas as pd
import numpy as np
Ваш DataFrame:
$ df
A
0 Reviewer: Newbie | 35-44 on Treatment for 1
1 Reviewer: 45-54 on Treatment for less than 1
2 Reviewer: Ocetech| 65-74 Male on Treatment
3 Reviewer: virleo| 55-64 Female on Treatment
4 Reviewer: Diane perrin| 65-74 on Treatment for
Ваш проиндексированный список:
$ l1
[1, 3, 4]
На основе loc. Для столбца A установить индекс на Nan с помощью Numpy ..
df.loc[l1,'A'] = np.nan
Результат:
print(df)
A
0 Reviewer: Newbie | 35-44 on Treatment for 1
1 NaN
2 Reviewer: Ocetech| 65-74 Male on Treatment
3 NaN
4 NaN
Небольшое примечание: если у вас нет длинного списка Index, который нужно заменить на NaN, вы можете напрямую указать их, а не передать список Index.
$ df.loc[[1,3,4],'A'] = np.nan
$ print(df)
A
0 Reviewer: Newbie | 35-44 on Treatment for 1
1 NaN
2 Reviewer: Ocetech| 65-74 Male on Treatment
3 NaN
4 NaN
$ df.rename(index = {1:np.nan, 3:np.nan, 4:np.nan}, inplace=True)
Используйте
df.loc[l1,'A'] = np.nan.