Сделать все значения после метки одинаковыми по значению с этой меткой - PullRequest
0 голосов
/ 11 мая 2019

У меня есть фрейм данных:

import numpy as np
import pandas as pd

np.random.seed(42)    
df = pd.DataFrame(np.random.randint(0, 10, size=(5, 2)), columns=['col1', 'col2'])

, который генерирует следующий кадр:

   col1  col2
0     6     3
1     7     4
2     6     9
3     2     6
4     7     4

Я хочу заменить все значения в строке 2 на любое значение в строке 1. Поэтому я набираю:

df.loc[2:] = df.loc[1:1]

Но полученный кадр заполняется с помощью nan:

   col1  col2
0   6.0   3.0
1   7.0   4.0
2   NaN   NaN
3   NaN   NaN
4   NaN   NaN

Я знаю, что могу использовать fillna(method='ffill'), чтобы получить то, что я хочу, но почему вещание не сработало, и результатом стал NaN? Ожидаемый результат:

   col1  col2
0     6     3
1     7     4
2     7     4
3     7     4
4     7     4

Редактировать: Панды версия 0.24.2

1 Ответ

0 голосов
/ 11 мая 2019

Я считаю, df.loc[1:1] - это просто пустой массив, следовательно, преобразованный в NaN? Это должно быть df.loc[2:, 'Value'] = df.loc[1, 'Value'].

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