为了将每年2-12月的数据整合到1月的文件中,编写了以下代码:
import pandas as pd
import os
year = 1982
while year <= 2020:
time_index = os.path.join(str(year))
data_1 = pd.read_csv(r'G:/Python_/NDVI_NJ/'+time_index+'01'+'.csv')
先提取了一月的数据为data_1,之后的数据都存储到这里。之后对月进行循环。我的数据文件名为198201,但我不会写代码使得设定的month是01、02、03的格式,所以我选择个位数和十位数分开写,以下是2-9月的代码。在str(month)前加上0就可以解决我的问题。当然有更简单的方法,希望我以后能学会。
month = 2
while month <= 9:
data_file = pd.read_csv(r'G:/Python_/NDVI_NJ/' + time_index + '0'+str(month) + '.csv')
data_2 = data_file.loc[:,['2']]
读取文件后将sv文件中列名为’2‘的读取到data_2中,这列就是我需要的数据。
data_1 = pd.concat([data_1,data_2],axis=1)
month += 1
print(time_index + "成功")
data_1.to_csv('G:/Python_/NDVI_annu1/' + time_index + '.csv',index=False)
year += 1
这一步是将data_1和data_2合并,继续循环并导出第一年的数据。然后进行第二年的循环。10月到12月的循环把0删掉即可。以下为10-12月的完整代码
year = 1982
while year <= 2020:
time_index = os.path.join(str(year))
data_1 = pd.read_csv(r'G:/Python_/NDVI_annu1/'+time_index+'.csv')
month = 10
while month <13:
data_file = pd.read_csv(r'G:/Python_/NDVI_NJ/' + time_index + str(month) + '.csv')
data_2 = data_file.loc[:,['2']]
data_1 = pd.concat([data_1,data_2],axis=1)
month += 1
print(time_index + "成功")
data_1.to_csv('G:/Python_/NDVI_annu1/' + time_index + '.csv',index=False)
year += 1