Посмотрите на следующий код:
import numpy as np
import pandas as pd
np.random.seed(42)
arr = np.random.randint(1, 11, (5, 5)).astype(np.float)
df = pd.DataFrame(arr)
>>> df
Out[49]:
0 1 2 3 4
0 7.0 4.0 8.0 5.0 7.0
1 10.0 3.0 7.0 8.0 5.0
2 4.0 8.0 8.0 3.0 6.0
3 5.0 2.0 8.0 6.0 2.0
4 5.0 1.0 10.0 6.0 9.0
rows, cols = [0, 2], [1, 3]
arr[rows, cols] = np.nan
df = pd.DataFrame(arr)
>>> df
Out[50]:
0 1 2 3 4
0 7.0 NaN 8.0 5.0 7.0
1 10.0 3.0 7.0 8.0 5.0
2 4.0 8.0 8.0 NaN 6.0
3 5.0 2.0 8.0 6.0 2.0
4 5.0 1.0 10.0 6.0 9.0
Есть ли способ заменить значения по определенным индексам, например, NaN, который не требует преобразования кадра данных вмассив numpy?