【发布时间】:2020-08-13 15:13:00
【问题描述】:
import pandas as pd
# intialise data of lists.
date1={'Indv':[1,2,3,4],'date':[1,1,1,1],'number':[5,5,5,5]}
date2={'Indv':[1,2,3,4],'date':[2,2,2,2],'number':[5,6,5,3]}
date3={'Indv':[1,2,3,4],'date':[3,3,3,3],'number':[2,3,4,5]}
date4={'Indv':[1,2,3,4],'date':[4,4,4,4],'number':[1,3,4,5]}
date5={'Indv':[1,2,3,4],'date':[5,5,5,5],'number':[2,3,7,5]}
date6={'Indv':[1,2,3,4],'date':[6,6,6,6],'number':[9,11,4,5]}
date7={'Indv':[1,2,3,4],'date':[7,7,7,7],'number':[3,3,4,5]}
date8={'Indv':[1,2,3,4],'date':[8,8,8,8],'number':[5,5,5,5]}
date9={'Indv':[1,2,3,4],'date':[9,9,9,9],'number':[5,6,5,3]}
date10={'Indv':[1,2,3,4],'date':[10,10,10,10],'number':[2,3,4,5]}
date11={'Indv':[1,2,3,4],'date':[11,11,11,11],'number':[1,3,4,5]}
date12={'Indv':[1,2,3,4],'date':[12,12,12,12],'number':[2,3,7,5]}
date13={'Indv':[1,2,3,4],'date':[13,13,13,13],'number':[9,11,4,5]}
date14={'Indv':[1,2,3,4],'date':[14,14,14,14],'number':[3,3,4,5]}
#CreateDataFrame
#Importing first seven days data
df1=pd.DataFrame(date1)
df2=pd.DataFrame(date2)
df3=pd.DataFrame(date3)
df4=pd.DataFrame(date4)
df5=pd.DataFrame(date5)
df6=pd.DataFrame(date6)
df7=pd.DataFrame(date7)
#merging first seven days data into one week data
final_week_1=df1.append([df2,df3,df4,df5,df6,df7])
final_week_1['week']=1
#Performing a groupby on week 1
groupby_week_1=final_week_1.groupby(['Indv','week'])['number'].sum().reset_index(name='weekly_total')
#delete the intermediate files to freeup memory and keep only the
del final_week_1
#CreateDataFrame
#Importing next set of seven days data of week 2
df8=pd.DataFrame(date8)
df9=pd.DataFrame(date9)
df10=pd.DataFrame(date10)
df11=pd.DataFrame(date11)
df12=pd.DataFrame(date12)
df13=pd.DataFrame(date13)
df14=pd.DataFrame(date14)
#merging second set of seven days and week 2
final_week_2=df8.append([df9,df10,df11,df12,df13,df14])
final_week_2['week']=2
#Performing a groupby on week 2
groupby_week_2=final_week_2.groupby(['Indv','week'])['number'].sum().reset_index(name='weekly_total')
del final_week_2
all_weeks_data=groupby_week_1.append([groupby_week_1])
需要循环上面的代码,得到最终的上面的all_weeks_data的每周分组数据
数据采用每日格式
需要从 52 周的第 1 天到第 n 天每 7 天合并一次。每周处理文件并导出数据。合并所有 n 天的数据会引发内存错误,因为文件大小非常大。
需要编写python代码来合并每7天的数据,导出并继续那几周的循环
【问题讨论】:
-
很抱歉,我真的无法理解你想要什么,你真正的输入是什么,你的预期输出是什么。
-
更新了我的问题。需要将 7 天的文件合并为周文件,对其进行处理并在下周继续工作。每周处理 7 天的文件必须保持循环。
-
数据是否以字典的形式呈现?另外
date的数据类型是什么? -
数据为 csv 格式。刚刚使用字典创建了虚拟数据集。每个df代表一天的数据。
标签: python pandas datetime group-by python-datetime