python-3.x - 迭代 Dataframe 并为特定符号每 5 分钟计算一次最小值
问题描述
dataframe
symbol,Time,Day,x_value,y_value
aaa,2018-09-21 11:01:00,saturday,1,2
aaa,2018-09-21 11:02:00,saturday,2,5
aaa,2018-09-21 11:03:00,saturday,5,1
aaa,2018-09-21 11:04:00,saturday,7,3
aaa,2018-09-21 11:05:00,saturday,6,4
aaa,2018-09-21 11:06:00,saturday,2,2
aaa,2018-09-21 11:07:00,saturday,3,5
aaa,2018-09-21 11:08:00,saturday,2,2
aaa,2018-09-21 11:09:00,saturday,2,3
aaa,2018-09-21 11:09:15,saturday,2,5
aaa,2018-09-21 11:10:00,saturday,2,3
output
symbol,day,start,end,count,x_value,y_value
aaa,saturday,11:01:00,11:10:00,5,13,15
说明:迭代数据帧并为特定符号每 5 分钟计算一次 x_value 和 y_value 的最小值,并将该数据帧转换为 csv。
解决方案
df['Time'] = pd.to_datetime(df['Time'])
df_new = df.groupby([pd.Grouper(key = 'Time', freq='5 min'), 'symbol', 'Day'])
.agg({'x_value': 'min', 'y_value': 'min'})
.reset_index()
df_new['Time_End'] = df_new['Time'].shift(-1) - pd.Timedelta('1s')
df_new
Time symbol Day x_value y_value Time_End
0 2018-09-21 11:00:00 aaa saturday 1 1 2018-09-21 11:04:59
1 2018-09-21 11:05:00 aaa saturday 2 2 2018-09-21 11:09:59
2 2018-09-21 11:10:00 aaa saturday 2 3 NaT
推荐阅读
- javascript - 在 Edge 浏览器中加载 GWT 页面/项目比 Chrome 和 Safari 浏览器花费更多时间
- conemu - ConEmu - 如何创建 3 个垂直和 1 个水平分割?
- r - 以另一列为条件拆分字符串
- google-apps-script - 如何从 getActiveRangeList() 触发函数中获取多个活动范围?
- python - 在python函数和类中循环
- c# - 客户端地址未经授权且调用方不是 Azure 中的受信任服务
- javascript - Thymeleaf + Javascript 选择选项更改
- java - 如何编写 POJO 来编组两个对象列表?
- python-3.x - 我想使用flask api创建一个回调url
- networking - 如何从外部访问内部?