从csv文件计算月度值

时间:2018-05-18 16:26:09

标签: python pandas csv

我有一个csv文件如下:

type

日期格式为Date,Data 01-01-01,111 02-02-02,222 03-03-03,333 。我想从这些日期计算数据的月平均值(我的文件中有超过3个日期)。

为此,我希望使用以下代码:

YEAR-MONTH-DAY

出于某种原因,这给了我错误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'没有读取标题。有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您的Date列标题已被读取,但已放入索引中。你必须使用:

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

另一种解决方案是在从csv。

创建数据帧时使用index_col=None
data = pd.DataFrame.from_csv("data.csv", index_col=None)

之后您的代码就可以了。

理想的解决方案是使用read_csv()

data = pd.read_csv("data.csv")

答案 1 :(得分:1)

使用 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]