提问者:小点点

如何在python中重新采样和插值新数据


我有一个csv文件,其中包含以下信息:

Time(s) Variable
0.003   1
0.009   2
0.056   3
0.094   4
0.4     5
0.98    6
1.08    7
1.45    8
1.89    9
2.45    10
2.73    11
3.2     12
3.29    13
3.5     14

我希望能够将时间列改变为从0开始的0.25s间隔,并使相关的变量数据随之改变(即,如果在2.45V=10,在2.5V=10.2)。 变量数据必须与我假设的时间数据的变化进行插值? 我需要能够直接从csv完成,而不是用python写出数据,因为真正的数据集是1000行。

不确定我想要的是不是真的可能,但是有些想法会顺其自然的,谢谢!


共1个答案

匿名用户

Scipy interp1d怎么样

from scipy.interpolate import interp1d

interp = interp1d(df['Time(s)'], df['Variable'])

new_times = np.arange(0.25, 3.5, 0.25)
pd.DataFrame({'Time(s)': new_times, 'Variable':interp(new_times)})

输出:

    Time(s)   Variable
0      0.25   4.509804
1      0.50   5.172414
2      0.75   5.603448
3      1.00   6.200000
4      1.25   7.459459
5      1.50   8.113636
6      1.75   8.681818
7      2.00   9.196429
8      2.25   9.642857
9      2.50  10.178571
10     2.75  11.042553
11     3.00  11.574468
12     3.25  12.555556