假设我有一个pandas.Series
,名为fin_series.
中的财务数据
{CDA>看这里。在
In [565]: fin_series
Out[565]:
Date
2008-05-16 1000.000000
2008-05-19 1001.651747
2008-05-20 1004.137434
...
2014-12-22 1158.085200
2014-12-23 1150.139126
2014-12-24 1148.934665
Name: Close, Length: 1665
我有兴趣看看数据的季度终点。不过,并非所有的金融交易日都正好在“本季度末”
例如:
^{pr2}$我在这里完成了一个期望的功能。在
def bmg_qt_asfreq(series):
ind = series[1:].index.quarter != series[:-1].index.quarter
ind = numpy.append(ind, True)
return tmp[ind]
这给了我:
In [15]: bmg_asfreq(tmp)
Out[15]:
Date
2008-06-30 976.169425
2008-09-30 819.517607
2008-12-31 760.428770
...
2011-09-30 963.252831
2011-12-30 999.742132
2012-03-30 1049.848583
...
2012-09-28 1086.689824
2012-12-31 1093.943357
2013-03-28 1117.111859
Name: Close, dtype: float64
请注意,我保留了“最近的先前价格”的日期,而不是简单地使用pandas.asfreq(freq = 'q', method = 'ffill')
,因为原始Series.Index
中存在的日期的保存是至关重要的。
这似乎是一个很多人都遇到过的愚蠢问题,必须通过所有的pandas
时间操作功能来解决,但是我不知道如何使用resample
或{
任何能向我展示内置的pandas
功能来完成这一点的人将不胜感激。在
谨致问候
假设输入是一个
数据帧Series
,首先执行以下操作得到每个季度最后一个非NA指数的序列。那么
^{pr2}$最后一个非NA值。然后你可以把它们连在一起。正如你在评论中建议的那样:
相关问题 更多 >
编程相关推荐