Pandas dataframe如何将fillna与groupby一起用于时间序列

2024-05-15 00:11:44 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:
我有以下数据集:

日期、日期、A、B、C
2015年3月23日,密苏里州,6008510574418623
2015年3月24日,屠呦呦,414727032714775
2015年3月25日,我们,466448169317168
2015年3月26日,第436407461515577号
2015年3月27日,联邦公报,375036775413278
2015年3月28日,南非,,,,
2015年3月29日,苏,,,,
2015年3月30日,密苏里州,6190410812819600
2015年3月31日,Tu,483768032617512
2015/04/01,我们,48529,,17815
2015年4月2日,第454917474415524号
2015/04/03,法国,,,,
2015年4月4日,南非,,,,
2015年4月5日,苏,,,,
2015/04/06,月,,,,
2015/04/07,时间:6573812041219082
2015/04/08,我们,447928146816796
2015/04/09,第409307081013664号
2015/04/10,联邦公报,393676024911882

我想在Mon Fr中的所有NA中填写以下任一项:
1) 前几周值
2) 上一个和下一个的平均值

所以在2015年4月1日我想要:
1) 81693
2) (81693+81468)/2=81580.5

我原以为我可以用groupby和fillna来处理ffill,但我不确定这是否可行,也不确定这是否是最好的方法。你知道吗


Tags: 数据方法编辑时间fr平均值联邦groupby
1条回答
网友
1楼 · 发布于 2024-05-15 00:11:44

我想没有一个日期不见了。你知道吗

df['date'] = df['date].map(lambda x:datetime.strptime(x,"%d/%m/%Y"))
df.sort_values(by=['date'],inplace=True)
cols = ['v1','v2','v3','v4']
cols_last_week = [i+'_last_week' for i in cols]
df[cols_last_week] = df[cols].shiftby(7)

假设v1有空值

df.loc[df['v1'].isnull(),'v1'] = df.loc[df['v1'].isnull(),'v1_last_week']

相关问题 更多 >

    热门问题