每个文件夹代表一个月份,即3月、4月、5月、6月、7月、8月、9月。每个文件夹都有同样名字的文件,从568.csv开始,分别代表一个点的名称,现在需要将每个点的各个月份提取到一起。
import pandas as pd
import os
i=568
while i<16777:
file_path = ("G:/Python_/end_9/sewdi")
if os.path.exists(file_path + "/" + str(i) + ".csv"):
data_3 = pd.read_csv("G:/Python_/ini_3/sewdi/" + str(i) + ".csv")
data_4 = pd.read_csv("G:/Python_/dev_4/sewdi/" + str(i) + ".csv")
data_5 = pd.read_csv("G:/Python_/mid_5/sewdi/" + str(i) + ".csv")
data_6 = pd.read_csv("G:/Python_/mid_6/sewdi/" + str(i) + ".csv")
data_7 = pd.read_csv("G:/Python_/mid_7/sewdi/" + str(i) + ".csv")
data_8 = pd.read_csv("G:/Python_/end_8/sewdi/" + str(i) + ".csv")
data_9 = pd.read_csv("G:/Python_/end_9/sewdi/" + str(i) + ".csv")
out_path = os.path.join("G:/Python_/sewdi_12/" + str(i) + ".csv")
if语句用于判断文件是否存在,如果存在再进行以下操作。将3456789月的i.csv文件分别提取出来,为data_3、data_4...以此类推,输出路径为out_path
data_new = pd.concat([data_3, data_4, data_5, data_6, data_7, data_8, data_9])
合并所有data并存储为data_new
data = data_new.loc[:, ['EWD', 'EWD_calculated_index', 'time']]
这一步的目的是提取data_new中的三列,其他无关紧要的数据就不要了
data = data.sort_values(by='time')
这一步的目的是由于提取的时候是先提取所有年份的3月,再提取所有年的4月,即1980-3、1981-3、1982-3...但我需要一年所有月份在一起,在进行下一年,如1980-3、1980-4...所有对time这一列进行重新排序。
print(str(i) + "!!!")
data.to_csv(out_path, index=0, sep=',')
i += 1
最后导出并进行下一循环