Python中是否有用于汇总秒毫秒数据的函数?

时间:2019-04-24 13:04:25

标签: python python-3.x pandas

我正在研究一个问题集,其中的数据在一微秒内。到目前为止,我有4个小时的数据。该数据集非常庞大,因为其中包含微秒级数据。我想将每个微秒数据汇总到各自的秒数中,以便于分析。

示例:

Vibration1   Vibration2  Vibration3  Temperature     Pressure           Time
   816          698          822        1852           710      2019-03-26 09:49:09.013650
   702          690          764        2002           810      2019-03-26 09:49:09.014308
   702          692          768        1888           706      2019-03-26 09:49:09.014680
   696          690          704        2004           810      2019-03-26 09:49:09.015094
   738          696          772        1990           710      2019-03-26 09:49:09.015682
   834          692          704        2066           704      2019-03-26 09:49:09.016153
   798          692          690        1892           722      2019-03-26 09:49:09.016520
   696          722          708        2102           700      2019-03-26 09:49:09.016875
   824          690          700        2058           718      2019-03-26 09:49:09.017213
   692          702          694        2106           704      2019-03-26 09:49:09.017564

像这样,我在第09秒有很多行。 我总共有4个小时的数据。我应该如何分别按秒和分钟来分组?

请帮助我。

如果我用groupby进行秒操作,则基本上将所有数据都用秒进行分组,而与小时,分钟无关。

我已将索引设置为DateTime索引,然后尝试使用此代码。并返回约60秒的数据,而与小时和分钟无关。

df.groupby(df.index.minute).mean()

2 个答案:

答案 0 :(得分:0)

您可以更改“时间”列吗?

示例:

import pandas as pd

data = {
    'dates': ['09:49:09.015682', '09:50:09.025682', '09:51:09.055682', '09:49:09.035682', '09:50:09.015682'],
    'values': [ 1, 2, 3, 4, 5]
}
df = pd.DataFrame(data)

for i in df.index:
    df['dates'][i] = df['dates'][i][:8]

print(df.groupby('dates').mean())

输出:

          values
dates           
09:49:09     2.5
09:50:09     3.5
09:51:09     3.0

答案 1 :(得分:0)

首先,确保您的时间是一个sudo whoami对象:

datetime

然后您需要resample

df.Time = pd.to_datetime(df.Time)

以您的示例数据为df.set_index('Time').resample('1S').mean() ,以上结果为:

df