Первый шаг - получить имена столбцов по второй строке:
df = pd.read_csv(file, header=[1])
Затем разделить Time
столбцы с replace
:
df['Time'] = df['Time'].str.split().str[-1].str.replace(':00:00', ':00')
Добавить новый столбец в 3-ю позицию с помощью DataFrame.insert
df.insert(2, 'Date', pd.date_range(df.columns[2], periods=len(df)))
Установить новые имена столбцов:
df.columns = df.columns[:3].tolist() + np.arange(3, len(df.columns)).tolist()
print (df)
Day Time Date 3 4 5 6 7
0 Night 23:00 2020-05-01 33 45 33 23 19
1 Night 00:00 2020-05-02 33 45 33 23 19
2 Night 01:00 2020-05-03 33 45 33 23 19
3 Night 02:00 2020-05-04 33 45 33 23 19
4 Night 03:00 2020-05-05 33 41 23 23 19
5 Night 04:00 2020-05-06 33 41 23 23 19