首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python分析大量传感器数据

用Python分析大量传感器数据
EN

Stack Overflow用户
提问于 2018-10-29 20:23:09
回答 2查看 1.2K关注 0票数 6

我是Python的新手,我必须分析一个包含Excel格式的原始感觉数据的大型数据集。

对于每个研究参与者来说,每个Excel-数据文件都大于100 MB。该文件包含5张表格,用于测量5个不同的生理参数。每个工作表包含100多万行和两列(时间、生理参数)。

在100万行感应器数据之后,数据自动在Excel文件中的下列列(C和D)中继续进行。

每次我尝试用Python加载数据文件时,都要花费很长时间。我想知道几件事:

1)如何告诉Python从特定的 Excel表中读取数据?这需要这么长时间是正常的吗?

这就是我试过的:

代码语言:javascript
运行
复制
df = pd.read_excel("filepath", sheet_name="Sheetname")
print (df.head (5)) 

2)用Pandas对Python中的大型数据文件进行数据处理是否可行?我试过这样做是为了加速这个过程:

代码语言:javascript
运行
复制
import xlrd
work_book = xlrd.open_workbook('filepath', on_demand=True)
work_book.release_resources()

( 3)随后:我想比较不同研究对象的生理参数。由于这是研究参与者之间的时间序列分析,我怎么才能开始用Python进行分析呢?

几天前我已经学习了Python的基础知识,到目前为止我很喜欢它。我知道我还有很长的路要走。

更新:我想我刚刚完成了时间序列分析(实际上只是趋势分析,使用Dickey-Fuller测试和滚动平均可视化技术)!:D非常感谢你们的帮助!熊猫中的“日期时间”模块对我来说是最难的,而我的“日期时间”栏仍然被认为是“对象”。这是正常的吗?不是应该是datetime64吗?

EN

回答 2

Stack Overflow用户

发布于 2018-10-29 21:07:03

IIUC,听起来不像你需要不断地从一个不断变化的Excel表格中读取数据。我建议您像以前一样在Excel表中阅读,并使用to_pickle()将它们存储在序列化的to_pickle()数据格式中。

代码语言:javascript
运行
复制
import pandas as pd

participants = ['P1','P2','P3']
physios = ['Ph1','Ph2','Ph3','Ph4','Ph5']

for p in participants:
    for ph in physios:
        df = pd.read_excel(p + r'.xlsx', sheet_name=ph)
        df.to_pickle(p + '_' + ph + r'.pkl')

现在,您可以更有效地读取这些被腌制的数据文件,因为您不必承担所有Excel开销。一个很好的讨论是可用的这里

票数 2
EN

Stack Overflow用户

发布于 2018-10-29 21:03:50

您所描述的数据集听起来像是dask项目所针对的问题。它允许您在并行内存中使用大多数标准的pandas命令.

唯一的问题是,根据我的判断,达斯克没有一个excel阅读器。既然你的问题表明数据不适合记忆..。您可能希望在excel中手动将数据转换为csv,然后您可以简单地:

代码语言:javascript
运行
复制
# After pip install dask
import dask.dataframe as dd
df = dd.read_csv("./relpath/to/csvs/*.csv")
# Do data munging here
df.compute()

如果这样做不起作用,那么如果您尝试将数据加载到spark或数据库中并在那里进行转换,可能会更好。

关于时间序列的问题,从阅读关于这个主题的文档这里开始.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53053270

复制
相关文章

相似问题

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