У меня есть набор данных, в котором мне нужно условно заполнить первое значение из соответствующей группы, но я не могу это понять.
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
Pandas группируется по fillna с первым допустимым значением (оконные функции) ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Pandas группируется по неделям и получает данные за прошлую неделю как новый df
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Pandas группируется по неделям и получает данные за прошлую неделю как новый df
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-