Я хочу постоянно заменять данные на количество указанных c столбцов - PullRequest
0 голосов
/ 28 мая 2020

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

Ввод,

1

Ожидаемый результат,

1

Я пытался решить эту проблему вот так, но это не сработало. Вы можете мне помочь?

df = data
df1 = df[:]    

a = 0
while a <= df.shape[0]:
    if pd.isnull(df['REPEAT'].iloc[a]) == False :
        for j in range(int(df['REPEAT'].iloc[a])) : 
            df1.iloc[a+j] = df.iloc[a]
    a = a+j+1

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете использовать fillna с ffil методом

df.fillna(method='ffil')

подробнее в этой ссылке
В вашем случае вы можете попробовать этот код:

i = 0
while i < df.shape[0]:
    if not np.isnan(df.loc[i,"REPEAT"]):
        rep = int(df.iloc[i]["REPEAT"])
        df.loc[i+1:i+rep,"A"] = df.iloc[i]["A"]
        df.loc[i+1:i+rep,"b"] = df.iloc[i]["b"]
        df.loc[i+1:i+rep,"REPEAT"] = rep
        i = i + rep
    i = i + 1

, но если date_time является индексом вашего фрейма данных, вы должны сбросить индекс, прежде чем пробовать этот код

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