import pandas as pd
df = pd.DataFrame({
'group': ['A', 'A', 'B', 'B'],
'value': [1, pd.NA, 3, 4],
'date': ['2021-01-01', '2021-02-01', '2021-01-01', '2021-03-01']
})
# 将date列转为datetime类型,并按照group和date升序排列
df['date'] = pd.to_datetime(df['date'])
df_sorted = df.sort_values(by=['group', 'date'])
# 根据group分组,使用fillna方法填充缺失值,再使用ffill方法填充非缺失值
df_filled = df_sorted.groupby('group')['value'].apply(lambda x: x.fillna(method='ffill'))
# 获取每个分组的最新非NA值
result = df_filled.groupby('group')['value'].last()
print(result)
输出结果为:
group
A 1
B 4
Name: value, dtype: int64
上一篇:按分组汇总n和1的数量。
下一篇:按分组获取最新日期记录