Как в DataFrame обратиться к чётным значениям index?
Нужно изменить значения в столбце gauss_1 для тех строк, где четный индекс. Возможно ли использовать DataFrame.apply() или что-то другое лучше? Пытаюсь что-то подобное соорудить:
df[['index', 'gauss_1']].apply(lambda x: pd.Series([x.index, None],axis=1), index=['index', 'gauss_1']) if (x.index % 2) == 0 else pd.Series([x.index, x.gauss_1], axis=1)
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Можно через loc и булев массив:
df = pd.DataFrame(np.random.randint(0, 10, 10), columns=['gauss_1'])
df.loc[df.index % 2 == 0, 'gauss_1'] = None
print(df)
Или с помощью метода mask:
df.gauss_1 = df.gauss_1.mask(df.index % 2 == 0)
print(df)
gauss_1
0 NaN
1 7.0
2 NaN
3 4.0
4 NaN
5 8.0
6 NaN
7 5.0
8 NaN
9 2.0
