Python 熊猫将采样时间序列从微秒减少到分钟,并按分钟进行处理
我有一个包含股票价格的数据框,其频率为Python 熊猫将采样时间序列从微秒减少到分钟,并按分钟进行处理,python,pandas,Python,Pandas,我有一个包含股票价格的数据框,其频率为微秒: In [48]: fdf.iloc[:5] Out[55]: #RIC ... Volume Date-Time ... 2019-03-05 09:30:06.283715885+08:00 .SSE100I ... 8805000.0 2019-03
微秒
:
In [48]: fdf.iloc[:5]
Out[55]:
#RIC ... Volume
Date-Time ...
2019-03-05 09:30:06.283715885+08:00 .SSE100I ... 8805000.0
2019-03-05 09:30:12.827067475+08:00 .SSE100I ... 7843100.0
2019-03-05 09:30:18.388287730+08:00 .SSE100I ... 7228800.0
2019-03-05 09:30:20.995625330+08:00 .SSE100I ... 2471700.0
2019-03-05 09:30:25.450852863+08:00 .SSE100I ... 929400.0
[5 rows x 7 columns]
In [56]: fdf.columns
Out[59]: Index(['#RIC', 'Domain', 'Date-Time', 'GMT Offset', 'Type', 'Price', 'Volume'], dtype='object')
我想按minute
freq对这个数据帧进行子集划分,并计算每分钟的一些统计数据。以下是我正在尝试的代码:
def min_stats(df):
import ipdb; ipdb.set_trace(context=7)
fdf.resample('T').apply(df)
然而,尽管fdf
有7列,但min_stats
中的df
是一个pd.Series
,它只包含第一列#RIC
。如何将所有列传递到df
?您可以尝试:
或者,也可以使用:
但排除了所有非数字列
您的功能应该如下所示:
import ipdb; ipdb.set_trace(context=7)
def min_stats(x):
print (x)
fdf.resample('T').apply(min_stats)
或:
您可以尝试:
或者,也可以使用:
但排除了所有非数字列
您的功能应该如下所示:
import ipdb; ipdb.set_trace(context=7)
def min_stats(x):
print (x)
fdf.resample('T').apply(min_stats)
或:
什么是打印(fdf.dtypes)?什么是打印(fdf.dtypes)?非常感谢
fdf.groupby(pd.Grouper(freq='T')).apply(minu stats)
正是我所需要的谢谢fdf.groupby(pd.Grouper(freq='T')).apply(minu stats)
正是我所需要的
import ipdb; ipdb.set_trace(context=7)
def min_stats(x):
print (x)
fdf.resample('T').apply(min_stats)
def min_stats(x):
print (x)
fdf.groupby(pd.Grouper(freq='T')).apply(min_stats)