Я пытаюсь прочитать в csv в этой форме:
2014,92,1931,6.234,10.14
2014,92,1932,5.823,9.49
2014,92,1933,5.33,7.65
2014,92,1934,4.751,6.19
2014,92,1935,4.156,5.285
2014,92,1936,3.962,4.652
2014,92,1937,3.74,4.314
2014,92,1938,3.325,3.98
2014,92,1939,2.909,3.847
2014,92,1940,2.878,3.164
Чтобы было ясно, это (год, день года, время 24:00 и 2 столбца значений).
У меня были некоторые мысли по этому поводу в предыдущем вопросе, но безрезультатно, и это оказалось вопросом нескольких проблем... (Создать индексированную дату и время из информации о дате/времени в 3 столбцах с помощью pandas)
Как отмечено в предыдущем вопросе, следующая попытка "read_csv"
df = pd.read_csv("home_prepped.dat", parse_dates={"dt" : [0,1,2]},
date_parser=parser, header=None)
вызывает TypeError:
TypeError: parser() takes exactly 1 argument (3 given)
Это связано с тем, что аргумент "parse_dates" содержит 0,1,2. Я также попытался поместить их в двойные скобки [[0,1,2]] и получить:
ValueError: [0, 1, 2] is not in list
Я преодолел это, установив parse_dates=True, и подумал, что могу просто установить set_index после, но получить это:
TypeError: должна быть строка, а не numpy.int64
Мой синтаксический анализатор тоже зацикливается на формате, и я читал противоречивые истории о заполнении нулями значения «день года». Мои не заполнены нулями, но даже несмотря на вышеперечисленные ошибки, у меня был формат, зависший от первого значения, года! Вот парсер:
def parser(x):
return pd.datetime.strptime(x, '%Y %j %H%M')
Так что да, у меня были ошибки, говорящие о том, что «2014» не распознан, а «92» (день года) не распознан, но это было поощрено, потому что, по крайней мере, strptime смог пройти «сквозь», чтобы опробовать формат.
Мне интересно, имеет ли это какое-то отношение к моим данным.
Я ищу способ получить эту информацию о дате и времени, проиндексированную как дату и время, и у меня не было ничего, кроме проблем. Я пошел дальше и дополнил некоторые джулианы на случай, если кто-то захочет проверить, что формат является проблемой заполнения, см. ниже:
2014,092,1931,6.234,10.14
2014,092,1932,5.823,9.49
2014,092,1933,5.33,7.65
2014,092,1934,4.751,6.19
2014,092,1935,4.156,5.285
2014,092,1936,3.962,4.652
2014,092,1937,3.74,4.314
2014,092,1938,3.325,3.98
2014,092,1939,2.909,3.847
2014,092,1940,2.878,3.164
Спасибо за вашу помощь, ребята, я начинаю действительно разочаровываться здесь: S