我正在尋找一種方法來重新索引數據與自定義函數。我的數據如下:熊貓:與自定義函數重新索引
AAA BBB CCC DDD
Time
2009-01-30 09:30:00 6407.04 43.90 44.01 85.11
2009-01-30 09:39:00 6403.20 43.82 44.01 84.93
2009-01-30 09:40:00 6400.00 43.90 44.03 84.90
2009-01-30 09:45:00 6396.16 43.97 44.04 84.91
2009-01-30 09:48:00 6393.60 44.02 44.07 84.81
2009-01-30 09:55:00 6400.00 44.31 44.14 84.78
2009-01-30 09:56:00 6406.40 44.36 44.16 84.57
2009-01-30 09:59:00 6426.24 44.36 44.11 84.25
2009-01-30 10:00:00 6438.40 44.32 44.09 84.32
2009-01-30 10:06:00 6495.36 44.43 44.16 84.23
它是一些股票價格的一分鐘的數據。我想將交易日拆分爲5個部分並重新採樣我的數據。 我開始創建自定義索引:
index_date = pd.date_range('2009-01-30', '2016-03-01')
index_date = pd.Series(index_date)
index_time = pd.date_range('09:30:00', '16:00:00', freq='78min')
index_time = pd.Series(index_time.time)
index = index_date.apply(
lambda d: index_time.apply(
lambda t: datetime.combine(d, t)
)
).unstack().sort_values().reset_index(drop=True)
讓我們假設我想申請基本百分比變化功能:
def percent_change(x):
if len(x):
return (x[-1]-x[0])/x[0]
所需的數據集sholud如下所示:
AAA BBB CCC DDD
2009-01-30 09:30:00 NaN NaN NaN NaN
2009-01-30 10:48:00 y y y y # where y is the output of the
2009-01-30 12:06:00 x x x x percent_change function from
2009-01-30 13:24:00 9:30 to 14:48
2009-01-30 14:42:00 # x is the output of the
2009-01-30 16:00:00 percent_change function
2009-01-31 09:30:00 from 10:49 to 12:06, etc
2009-01-31 10:48:00
一我的數據可以在這裏找到更大的樣本: https://www.dropbox.com/s/h29xlpveb1o7p2u/data.csv?dl=0
我該怎麼辦那?
您可以發佈所需要的數據設置(包括一個新的索引)? – MaxU
已被添加到問題 –