【发布时间】:2019-02-08 08:14:14
【问题描述】:
我有一个包含以下列的数据框(只是摘录):
START END FREQ VARIABLE
'2017-03-26 16:55:00' '2017-10-28 16:55:00' 1234567 x
'2017-03-26 20:35:00' '2017-10-28 20:35:00' 1234567 y
'2017-03-26 14:55:00' '2017-10-28 14:55:00' ..3.567 y
'2017-03-26 11:15:00' '2017-10-28 11:15:00' 1234567 y
'2017-03-26 09:30:00' '2017-06-11 09:30:00' ......7 x
我的目标是创建一个新的数据框,根据“FREQ”列生成从“START”日期开始并在“END”日期结束的每日行,从而扩展该数据框。在此“FREQ”列中,1 = 星期一,7 = 星期日。 “点”表示不应在一周中的特定日期创建该行。因此,..3.5.7 仅对应于周三、周五和周日的 3 个新行。 'VARIABLE' 列对于每个创建的行应该始终具有相同的值。
我的主要问题是新的数据框将有数百万行,因此,我一直在寻找一个真正有效的解决方案。
用 Python 代码编写的数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([
'2017-03-26 16:55:00','2017-10-28 16:55:00', '1234567', 'x',
'2017-03-26 20:35:00','2017-10-28 20:35:00','1234567','y',
'2017-03-26 14:55:00','2017-10-28 14:55:00','..3.567','y',
'2017-03-26 11:15:00','2017-10-28 11:15:00','1234567','y',
'2017-03-26 09:30:00','2017-06-11 09:30:00','......7','x']).reshape((5, 4)))
df.columns = ['START','END','FREQ','VARIABLE']
【问题讨论】:
-
My major problem is that the new dataframe will have millions of rows。因此,您能否向我们展示适用于较小数据帧的工作代码in your question?
标签: python pandas performance numpy dataframe