我有一个带有多年电力负荷数据的大型CSV,我想将其分成多个月份和年份的文件 - 即返回2013年,2014年1月,2月,3月等的个人CSV, 2015等。
我已经在论坛中审查了很多解决方案,并且没有任何运气。我当前的文件结构如下;
01-JAN-11,1,34606,34677,35648,35685,31058,484,1730
01-JAN-11,2,35092,35142,36089,36142,31460,520,1730
01-JAN-11,3,34725,34761,36256,36234,31109,520,1730
01-JAN-11,4,33649,33698,35628,35675,30174,512,1730
日期列中列标题的名称是" SETTLEMENT DATE"。我熟悉使用熊猫和df&s;但似乎无法解决如何做这个问题!
谢谢!
答案 0 :(得分:0)
以下是如何做到这一点。
首先,您从csv_file
读取数据并保存cols
,如下所示:
df = pd.read_csv('path/input.csv')
cols = df.columns
然后您向dataframe
Month
和Year
添加两列:
df['Year'] = df['SETTLEMENT DATE'].apply(lambda x: x.split('-')[-1])
df['Month'] = df['SETTLEMENT DATE'].apply(lambda x: x.split('-')[1])
您要做的就是将您的数据框分别按月{年} csv files
编写,每个file
都带有month
或year
的名称如下:
for i in set(df.Year): # for classified by years files
filename = "path/"+i+".csv"
df.loc[df.Year == i].to_csv(filename,index=False,columns=cols)
for i in set(df.Month): # for classified by months files
filename = "path/"+i+".csv"
df.loc[df.Month == i].to_csv(filename,index=False,columns=cols)
希望这有用。