首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中将数据分割为多个5秒数据格式。

在Python中将数据分割为多个5秒数据格式。
EN

Stack Overflow用户
提问于 2017-11-06 07:00:03
回答 2查看 166关注 0票数 2

我有一个相对较大的数据集,我想根据包含日期时间对象的列,在Python中分割成多个数据格式。列中的值(我希望用它来分割数据)是以以下格式提供的:

  1. 2015-11-01 00:00:05

您可以假设dataframe看起来是这样的。

如何通过以下方式将将数据分割为5秒间隔的

  1. 第一数据中心2015-11-01 00:00:00 - 2015-11-01 00:00:05
  2. 第二数据格式2015-11-01 00:00:05 - 2015-11-01 00:00:10,等等。

我还需要在每个结果数据中计算观察的数量。换句话说,如果我能得到另一个有2列的数据,那就太好了:第一列表示分裂的组(这个列的值不重要:它们可以是1,2,3,.表示5秒间隔的顺序),第2栏显示属于各自间隔的观测数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-06 08:11:43

我认为存储多个DataFrame的最佳方法是dict

代码语言:javascript
运行
复制
rng = pd.date_range('2015-11-01 00:00:00', periods=100, freq='S')
df = pd.DataFrame({'Date': rng, 'a': range(100)})  
print (df.head(10))
                 Date  a
0 2015-11-01 00:00:00  0
1 2015-11-01 00:00:01  1
2 2015-11-01 00:00:02  2
3 2015-11-01 00:00:03  3
4 2015-11-01 00:00:04  4
5 2015-11-01 00:00:05  5
6 2015-11-01 00:00:06  6
7 2015-11-01 00:00:07  7
8 2015-11-01 00:00:08  8
9 2015-11-01 00:00:09  9

dfs={k.strftime('%Y-%m-%d %H:%M:%S'):v for k,v in 
                 df.groupby(pd.Grouper(key='Date', freq='5S'))}

print (dfs['2015-11-01 00:00:00'])
                 Date  a
0 2015-11-01 00:00:00  0
1 2015-11-01 00:00:01  1
2 2015-11-01 00:00:02  2
3 2015-11-01 00:00:03  3
4 2015-11-01 00:00:04  4

print (dfs['2015-11-01 00:00:05'])
                 Date  a
5 2015-11-01 00:00:05  5
6 2015-11-01 00:00:06  6
7 2015-11-01 00:00:07  7
8 2015-11-01 00:00:08  8
9 2015-11-01 00:00:09  9
票数 1
EN

Stack Overflow用户

发布于 2017-11-06 08:31:16

您可以按Date列的楼层按5s进行分组。

代码语言:javascript
运行
复制
f = '{:%Y-%m-%d %H:%M:%S}'.format

dfs = {f(k): g for k, g in df.groupby(df.Date.dt.floor('5s'))}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47131431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档