我有一个数据框,其中包含许多ID的十进制明智值,例如:
['nuxt-parse', {
appId: "blablabla",
javascriptKey: "blablabla",
serverUrl: "https://parseapi.back4app.com"
}
我想进行插值(可能是线性的)以获得每个id的逐年值。我该怎么办?
如果我想要按月计算的值(年份列本身也应包括月份)怎么办?该怎么做?
答案 0 :(得分:1)
我相信您需要DataFrame.groupby
和DataFrame.resample
和Resampler.interpolate
:
#for DatetimeIndex
df.index = pd.to_datetime(df['year'], format='%Y').rename('datetimes')
df = (df.groupby('id')['value']
.apply(lambda x: x.resample('MS').interpolate())
.reset_index())
print (df)
id datetimes value
0 1 2020-01-01 0.090000
1 1 2020-02-01 0.090083
2 1 2020-03-01 0.090167
3 1 2020-04-01 0.090250
4 1 2020-05-01 0.090333
.. .. ... ...
477 2 2039-09-01 0.109667
478 2 2039-10-01 0.109750
479 2 2039-11-01 0.109833
480 2 2039-12-01 0.109917
481 2 2040-01-01 0.110000
[482 rows x 3 columns]