Рассчитать месячное значение из файла CSV - PullRequest
0 голосов
/ 18 мая 2018

У меня есть CSV-файл следующим образом:

Date,Data
01-01-01,111
02-02-02,222
03-03-03,333

Дата имеет следующий формат YEAR-MONTH-DAY.Я хотел бы рассчитать по этим датам среднемесячные значения данных (в моем файле более 3 дат).

Для этого я хочу использовать следующий код:

import pandas as pd
import dateutil
import datetime
import os,sys,math,time
from os import path

os.chdir("in/base/dir")
data = pd.DataFrame.from_csv("data.csv")
data['Month'] = pd.DatetimeIndex(data['Date']).month
mean_data = data.groupby('Month').mean()
with open("data_monthly.csv", "w") as f:
    print(mean_data, file=f)

По какой-то причине это дает мне ошибку KeyError: 'Date'.Похоже, что заголовок не читается pandas.Кто-нибудь знает, как это исправить?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Ваш заголовок столбца Date читается, но помещается в индекс.Вы должны использовать:

data['Month'] = pd.DatetimeIndex(data.reset_index()['Date']).month

Другое решение заключается в использовании index_col=None при создании кадра данных из CSV.

data = pd.DataFrame.from_csv("data.csv", index_col=None)

После чего ваш код будет в порядке.

Идеальным решением было бы использование read_csv () .

data = pd.read_csv("data.csv")
0 голосов
/ 18 мая 2018

Используйте метод read_csv .По умолчанию это запятая.

import pandas as pd
df = pd.read_csv(filename)
print(pd.to_datetime(df["Date"]))

Вывод:

0   2001-01-01
1   2002-02-02
2   2003-03-03
Name: Date, dtype: datetime64[ns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...