Мне нужно прочитать несколько файлов, которые находятся в разных каталогах, а затем поместить их в один и тот же кадр данных. Я использую CSV-файл для чтения дат.
Имена файлов организованы как hgyymmddhhhhh
гг = год
мм = месяц
дд= день
чччх = час
Дело в том, что на один и тот же день у меня может быть 1, 2 или 3 разных часа:
hg1308250000.nc
hg1308250100.nc
hg1308250200.nc
или
hg1309201100.nc
hg1309201200.nc
или
hg1310281300.nc
Сценарий, который я сделал, читает только один час в день ... Если день имеет 2 или 3 разных часа, он просто игнорирует его. Например, 25 августа он читает только hg1308250200.nc
df=pd.read_csv('/home/Desktop/dates.csv')
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df['year'], df['month'], df['day'] = df['Date'].dt.year.map("
{:02}".format), df['Date'].dt.month.map("{:02}".format),
df['Date'].dt.day.map("{:02}".format)
df['year2']=df['Date'].dt.strftime('%y')
for p in np.arange(len(df)):
year=str(df.iloc[p,1])
month=str(df.iloc[p,2])
day=str(df.iloc[p,3])
year2=str(df.iloc[p,4])
os.chdir('/home/Documents/PhD/Data/'+year+'/DWD/'
+month+ '/')
for file in glob.glob('hg' +year2+ month+ day +'*.nc'):
data1 = Dataset(file, 'r')
data1.set_auto_mask(False)
hour= str(file[8:12])
errorbc = data1.variables['ErrorBackscatter'][:]
bc = data1.variables['Backscatter'][:
alt = data1.variables['Altitude'][:]
df_final = pd.DataFrame({'bc': bc, 'bc_e': errorbc,
'hour':hour}, index=alt)
df_final = df_final.assign(date=df.iloc[p].Date)
Кто-нибудь знает, как это исправить, чтобы получить все файлы того же дня в кадре данных?