Как использовать списки, содержащие индексы строк / столбцов, для замены нескольких отдельных значений кадра данных? - PullRequest
0 голосов
/ 30 января 2019

Посмотрите на следующий код:

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?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Использование lookup

df.lookup(rows,cols)
Out[810]: array([4, 3])
0 голосов
/ 30 января 2019

Попробуйте это:

df.values[rows, cols]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...