0
我有一个熊猫数据框,包含多个位置(由坐标x
定义)不同时间步长的值。我想创建一个pandas.Series
对象,其中包含所有时间步(给定数据帧的所有索引值)的给定位置x
处的值。如果x
不是列标签之一,我想插入两个最接近的x
值之间。通过内插列标签从熊猫数据框中选择一个系列
从数据框对象(min(x)=0
和max(x)=0.28
)的摘录:
0.000000 0.007962 0.018313 0.031770 0.049263 0.072004
time (s)
15760800 0.500481 0.500481 0.500481 0.500481 0.500481 0.500481
15761400 1.396126 0.487198 0.498765 0.501326 0.500234 0.500544
15762000 1.455313 0.542441 0.489421 0.502851 0.499945 0.500597
15762600 1.492908 0.592022 0.487835 0.502233 0.500139 0.500527
15763200 1.521089 0.636743 0.490874 0.500704 0.500485 0.500423
15763800 1.542632 0.675589 0.496401 0.499065 0.500788 0.500335
我可以想办法通过切片可用列标签数据帧。但有没有一种优雅的方式来进行插值?
最后我想要一个看起来像这样的函数:result = sliceDataframe(dataframe=dfin,x=0.01)
,结果是一个pandas.Series
对象,所以我可以在另一个后处理脚本中的一行(或两个)中调用它。
我不想和一个虚构的点来调整数据帧。有没有办法在不添加列的情况下使用插值选项?如果不是,那么我想我会选择第一个解决方案。 – tvandenbrande 2014-11-03 15:09:41
不,熊猫插值方法始终填充DataFrame中的NaN。但也许有可能使用基本的scipy插值方法。但是,一旦您选择了两个相邻的列,插值本身只是一条简单的线性插值线,我不知道这是值得使用的。 – joris 2014-11-03 15:12:21
实现了第一个选项,工作正常,速度足以进行后期处理。谢谢 – tvandenbrande 2014-11-03 15:18:10