【发布时间】:2014-03-17 21:27:52
【问题描述】:
我需要使用 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) 大文件有间隙,所以有些半小时可能没有填满,有些可能完全丢失。
【问题讨论】: