Как импортировать файлы данных NOAA-CRN?
Я загрузил .txt
файлы данных NOAA-CRN, которые после удаления данных, которые меня не интересуют, сохраняются как .csv
выглядит как:
4 5 10
LST_DATE LST_TIME T_HR_AVG
YYYYMMDD HHmm Celsius
20150101 0 20.9
20150101 100 20.9
20150101 200 21
20150101 300 20.7
20150101 400 20.6
20150101 500 20.8
Я хочу прочитать файлы с помощью Pandas и конвертировать дату и время в формат (потому что это формат, используемый данными из других агентств):
2015-01-01 00:00:00
,
Но я застрял, кажется, ничего не работает. Я использую этот код для чтения файла:
parse = (lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%m'))
#Import for Everglades City (CRN Station)
Y= pd.read_csv('/file.csv',
delimiter=',', header = None, engine = 'python',
skiprows= 3,
usecols = [0,1,2],
parse_dates = [[0,1]], date_parser = parse,
index_col=0,
)`
Который дает:
TypeError: <lambda>() takes 1 positional argument but 2 were given
Это происходит потому, что Python не может обрабатывать формат даты и времени YYYYMMDD HHmm
? Помощь будет оценена.
1 ответ
Решение
Есть проблема с форматом времени, возможное решение:
import pandas as pd
temp=u"""4;5;10
LST_DATE,LST_TIME,T_HR_AVG
YYYYMMDD,HHmm,Celsius
20150101,0,20.9
20150101,100,20.9
20150101,200,21
20150101,300,20.7
20150101,400,20.6
20150101,500,20.8"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
#parse = (lambda x: pd.datetime.strptime(x, '%Y%m%d %H'))
df = pd.read_csv(pd.compat.StringIO(temp),
skiprows= 2,
usecols = [0,1,2],
)
print (df)
YYYYMMDD HHmm Celsius
0 20150101 0 20.9
1 20150101 100 20.9
2 20150101 200 21.0
3 20150101 300 20.7
4 20150101 400 20.6
5 20150101 500 20.8
dates = df.pop('YYYYMMDD').astype(str) + df.pop('HHmm').astype(str).str.zfill(4)
df.index = pd.to_datetime(dates)
print (df)
Celsius
2015-01-01 00:00:00 20.9
2015-01-01 01:00:00 20.9
2015-01-01 02:00:00 21.0
2015-01-01 03:00:00 20.7
2015-01-01 04:00:00 20.6
2015-01-01 05:00:00 20.8