使用pandas将数天的数据帧拆分为半小时的数据帧并将其保存为csv文件

时间:2014-03-17 13:22:52

标签: python pandas

我需要将大量(几百万条记录)文件分成半小时文件,使用pandas与其他第三方软件一起使用。这就是我的尝试:

import datetime as dt
import string
import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(1728000, 2), index=pd.date_range('1/1/2014',
    periods=1728000, freq='0.1S'))
df_groups = df.groupby(df.index.map(lambda t: dt.datetime(t.year, t.month,
    t.day, t.hour)))
for name, group in df_groups:
    group.to_csv(string.replace(str(name), ':', '_') + '.csv')

但是这样我才能让小熊猫按小时分开。如果我想将它们分成半小时的文件,我该怎么办?

要记住以下几点:a)大文件可能会持续数天,所以如果我使用lambda t: t.hour,我会从不同的日期获取数据,但同一时间组合在一起; b)大文件有间隙,所以有些半小时可能不满,有些可能完全缺失。

1 个答案:

答案 0 :(得分:5)

让你的石斑鱼像这样:

df.groupby(pd.TimeGrouper('30T'))

在0.14中,这将略有不同,例如df.groupby(pd.Grouper(freq='30T'))