Ввод значений на основе другого столбца панд - PullRequest
0 голосов
/ 15 декабря 2018

Я хочу скопировать значение из указанной выше ячейки, если значение в другом столбце совпадает, и если не использовать среднее значение существующих значений.

По сути, я хочу создатьвременной ряд, в котором следует использовать предыдущее значение, если не было отметки.

Пример и пример решения ниже

enter image description here enter image description here

Name Date Value
A 01/01/2018
A 02/01/2018
A 03/01/2018
A 04/01/2018 15
A 05/01/2018
A 06/01/2018 18
B 01/01/2018
B 02/01/2018
B 03/01/2018
B 04/01/2018
B 05/01/2018 30
B 06/01/2018
B 07/01/2018
B 08/01/2018 35
B 09/01/2018
B 10/01/2018
C 01/01/2018
C 02/01/2018
C 03/01/2018
C 04/01/2018 45
C 05/01/2018
C 06/01/2018
C 07/01/2018 53
C 08/01/2018
C 09/01/2018 48
C 10/01/2018
C 11/01/2018
C 12/01/2018 

1 Ответ

0 голосов
/ 15 декабря 2018

Вы можете попробовать следующее

# Calculate the mean and put it to an auxiliary column
df = df.set_index('Name')
df['Mean'] = df.groupby(df.index)['Value'].mean()

# Forward fill the gaps [.ffill() doesn't work here for some reason]
df['Value'] = df.groupby(df.index)['Value'].fillna(method='ffill')

# Fill the remaining gaps with the mean
df['Value'] = df['Value'].fillna(df['Mean'])

# Remove the auxiliary column and the index
df = df.drop('Mean', 1).reset_index()

, чтобы получить точный вывод, который вы опубликовали.

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