Pandas группируется по fillna с первым допустимым значением (оконные функции)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pandas группируется по fillna с первым допустимым значением (оконные функции)

Сообщение Anonymous »

У меня есть набор данных, в котором мне нужно условно заполнить первое значение из соответствующей группы, но я не могу это понять.
import numpy as np
import pandas as pd
df_dict = {
'id':[1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2],
'data':['A', np.nan, np.nan, np.nan, 'B', np.nan, np.nan, np.nan, 'C', np.nan, np.nan]
}
df = pd.DataFrame(df_dict)

Мне нужно создать фрейм данных, который выглядит следующим образом:
final_dict = {
'id':[1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2],
'data':['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C']
}
final = pd.DataFrame(final_dict)

Мне хочется сгруппировать по идентификатору, а затем выполнить .fillna(что-то), но я не могу понять, что делать.Я пробовал
df.groupby('id')['data'].fillna(df['data'].first_valid_index())

но это ставит 0 вместо копирования того, что я хочу.
У меня также есть другое частичное решение:for col_name, data in df.items():
df[col_name] = df.groupby('id').apply(
lambda x: x[col_name].fillna(x.loc[x[col_name].last_valid_index(), col_name])
).reset_index(drop=True)


Подробнее здесь: https://stackoverflow.com/questions/546 ... -functions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»