Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pandas将几天长的数据帧拆分为每半小时一次的数据帧,并将其保存为csv文件_Python_Pandas - Fatal编程技术网

Python 使用pandas将几天长的数据帧拆分为每半小时一次的数据帧,并将其保存为csv文件

Python 使用pandas将几天长的数据帧拆分为每半小时一次的数据帧,并将其保存为csv文件,python,pandas,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'))

我需要使用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) 大文件有间隙,因此有些半小时可能不够用,有些可能完全丢失。

让您的grouper像这样:

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

在0.14中,这将略有不同,例如,
df.groupby(pd.Grouper(freq='30T'))
使您的石斑鱼如下所示:

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

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

谢谢杰夫!成功了。:)熊猫的网站上没有很好地记录这一功能。这是在0.13中引入的吗?
TimeGrouper
一直是半文档化的(不是很好)。已经存在很长时间了。在0.14中,通过使用
pd.Grouper
(这基本上为您创建了
TimeGrouper
),可以更好地将其集成到文档中。您实际上是在按时间进行分组,但不是重新采样。谢谢Jeff!成功了。:)熊猫的网站上没有很好地记录这一功能。这是在0.13中引入的吗?
TimeGrouper
一直是半文档化的(不是很好)。已经存在很长时间了。在0.14中,通过使用
pd.Grouper
(这基本上为您创建了
TimeGrouper
),可以更好地将其集成到文档中。实际上,您是在按时间进行分组,而不是重新采样。