Преобразование метки времени панд в конец месяца
У меня есть следующий код:
#!/usr/bin/python
import pandas as pd
df = pd.read_excel(io='http://www.iea.org/gtf/download/Export_GTF_IEA.xls', sheetname='Data', skip_footer=5, )
df = df.drop('Unnamed: 2', axis=1)
df = df.drop('Exit', axis=1)
df = df.drop('Entry', axis=1)
df = df.drop('MAXFLOW (Mm3/h)', axis=1)
df = df.T
df.to_csv('foo.csv', encoding='utf-8', sep='\t', header=False)
#Пример вывода выглядит так:
print df
0 1 2 3 4 \
Borderpoint Adriatic LNG Almeria Alveringem Alveringem Badajoz
2008-10-01 00:00:00 0 0 0 0 152.81
2008-11-01 00:00:00 0 0 0 0 183.31
2008-12-01 00:00:00 0 0 0 0 85.21
2009-01-01 00:00:00 0 0 0 0 199.16
2009-02-01 00:00:00 0 0 0 0 104.48
2009-03-01 00:00:00 0 0 0 0 9.17
Как преобразовать метку времени в дату окончания месяца?
1 ответ
Заголовки не установлены должным образом, поэтому для установки правильных заголовков вы можете использовать
df.columns = df.iloc[0]
df.drop(df.index[:1], inplace=True)
Ден, чтобы изменить метки времени на дату окончания месяца, которую вы можете использовать
df.index = df.index + pd.offsets.MonthEnd(0)
Выход:
Пограничный пункт Адриатического СПГ Almeria Alveringem Alveringem Бадахос Бадахос 2008-10-31 0 0 0 0 152,81 0 2008-11-30 0 0 0 0 183,31 0 2008-12-31 0 0 0 0 85.21 0 2009-01-31 0 0 0 0 199.16 0 2009-02-28 0 0 0 0 104,48 12 2009-03-31 0 0 0 0 9,17 2 2009-04-30 0 0 0 0 190,49 0 2009-05-31 0 0 0 0 0 0