Python:循环60000行的替代方案

Python:循环60000行的替代方案,python,excel,loops,pandas,dataframe,Python,Excel,Loops,Pandas,Dataframe,我有两个excel文件。 文件1说明: -数据频率:1Hz -总行数:62000 文件2说明: -数据频率:10赫兹 -行总数:616000 手头的任务: 要组合这两组数据,请对文件2在同一秒内使用10个数据点的平均值 两个文件中的第一列都是时间戳,数据记录的持续时间相同。但是,时间戳并不相同,并且总是以毫秒为单位 我的做法: 我使用熊猫在excel文件中读取数据框 我已经能够使用for循环为较小的数据集实现这一点。然而,由于数据量大,使用for循环非常麻烦和缓慢。 为了在文件2中对每秒10个点

我有两个excel文件。 文件1说明: -数据频率:1Hz -总行数:62000

文件2说明: -数据频率:10赫兹 -行总数:616000

手头的任务:

要组合这两组数据,请对文件2在同一秒内使用10个数据点的平均值

两个文件中的第一列都是时间戳,数据记录的持续时间相同。但是,时间戳并不相同,并且总是以毫秒为单位

我的做法: 我使用熊猫在excel文件中读取数据框

我已经能够使用for循环为较小的数据集实现这一点。然而,由于数据量大,使用for循环非常麻烦和缓慢。 为了在文件2中对每秒10个点进行滚动平均,我以前使用过嵌套for循环。同样,由于数据的性质,几乎不可能使用相同的方法


我将感谢在处理这一问题的方法上提供的任何帮助

您可以基于10个组为大数据帧分配组,然后使用groupby获得平均值

df_big['group'] = [i // 10 for i in range(len(df_big))]  # Python 2 truncation.
df_big.groupby('group').mean()

如果你提供两个文件的一些样本数据,我可以改进这个答案。

你可以对第二个df进行重新采样,然后截断日期时间,这样毫秒就无关紧要了,因为你要对10 hz进行重新采样以匹配1 hz的采样,这样你就可以从我的理解中删除毫秒成分,
重新采样
需要恒定的时间增量。虽然每秒有10个数据点,但每次记录数据时,时间增量变化约2-3%。您必须决定如何存储数据,2-3%的差异是否重要取决于您。你无论如何都无法精确匹配,所以你需要想出一些策略来合并你的数据谢谢你,这对我很有用。然而,仍然存在将数据从df_big关联到df_small的问题。目前,我无法运行真/假算法来检查时间戳匹配的位置。我希望能够合并两个文件中的数据。这就是为什么我需要查看一些数据。试试df_big.head()和df_small.head()