Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带数值索引的熊猫系列重采样_Python_Pandas - Fatal编程技术网

Python 带数值索引的熊猫系列重采样

Python 带数值索引的熊猫系列重采样,python,pandas,Python,Pandas,假设我有一个带数值类型索引的熊猫系列,例如 pd.Series( [10,20], [1.1, 2.3] ) 我们如何以0.1的间隔对上述序列进行重采样?看起来.resample func只在日期时间间隔上工作 因为浮点比较运算,我认为不能有非整数索引。但是,使用.1,您可以执行以下操作: 创建一个新的df=pd.DataFrame(index=range(100201))[这些现在将表示.1] 将100(最初为10)和200(最初为20)的值设置为1.1和2.3 df.fillna(met

假设我有一个带数值类型索引的熊猫系列,例如

pd.Series( [10,20], [1.1, 2.3] )

我们如何以0.1的间隔对上述序列进行重采样?看起来.resample func只在日期时间间隔上工作

因为浮点比较运算,我认为不能有非整数索引。但是,使用.1,您可以执行以下操作:

  • 创建一个新的
    df=pd.DataFrame(index=range(100201))
    [这些现在将表示.1]
  • 将100(最初为10)和200(最初为20)的值设置为1.1和2.3
  • df.fillna(method='pad',inplace=True)

而且,看起来你根本不需要使用索引,你只需要数据之间的间隔…

这就是所谓的插值。您可以将重采样视为插值的一种特殊情况

In [24]: new_idx = s.index + pd.Index(np.arange(1.1, 2.3, .01))

In [25]: s.reindex(new_idx).interpolate().head()
Out[25]: 
1.10    10.000000
1.11    10.083333
1.12    10.166667
1.13    10.250000
1.14    10.333333
dtype: float64

In [26]: s.reindex(new_idx).interpolate().tail()
Out[26]: 
2.26    19.666667
2.27    19.750000
2.28    19.833333
2.29    19.916667
2.30    20.000000
dtype: float64
我们需要
new_idx
将原始索引和要插值的值合并,这样原始索引就不会被删除


看看插值方法:

一个选项是使用“剪切”来对数据进行分类(比重采样要简单得多,但如下所示):

如果您想使用how='sum'重新采样:

In [14]: s = s.groupby(s.index).sum()

In [15]: s = s.reindex(retbins)
现在有很多N,正如Tom所建议的,你现在可以插入:

In [16]: s.interpolate()

我认为在重新编制索引时2.3会下降,因此结果不会增加…很好的捕获。我应该仔细看看。对
reindex().interpolate()
API与
s.reindex(at=new_idx)
的思考?最初,它主要是为了使
df.interpolate()
更易于编写。我可以看到任何一种方式的参数。@AndyHayden和tom:浮点数现在作为索引值可靠吗?它们现在受
Float64Index
支持。但仍然有一些棘手的问题,所以我尽量避免它们。我认为使用切割更稳定,希望你/某人知道一个更好的方法!正如我们刚刚发现的那样,浮动非常灵活/敏感,但有时它们很有用。。。小心处理。
In [16]: s.interpolate()