【发布时间】:2017-05-19 18:58:58
【问题描述】:
鉴于此代码:
import pandas as pd
import numpy as np
import matplotlib.pylab as plt
from matplotlib.pylab import rcParams
dateparse = lambda dates : pd.datetime(date, '%Y-%m')
data = pd.read_csv('F2016_11_18_14-2016_11_18_21_datafile.csv', parse_dates='Date', index_col = 'Date', date_parser=dateparse)
print (data.head())
我得到一个类型错误:
TypeError: 'parse_dates' 参数只接受布尔值、列表和字典
我不明白为什么会这样。
这是我的数据示例:
Date Time_GMT Time_IST Current
11/18/2016 9:00:00 14:30:00 20.9
11/18/2016 9:00:01 14:30:01 23.37
11/18/2016 9:00:02 14:30:02 24.11
11/18/2016 9:00:03 14:30:03 26.51
11/18/2016 9:00:04 14:30:04 28.9
11/18/2016 9:00:05 14:30:05 24.21
11/18/2016 9:00:06 14:30:06 23.21
【问题讨论】:
-
您的
lambda格式错误:dateparse = lambda dates : pd.datetime(date, '%Y-%m')应该是dateparse = lambda dates : pd.datetime(dates, '%Y-%m') -
你的样本数据真的是这样吗?不是逗号分隔吗?因为如果这是您的示例数据,那么您的代码不应该工作。如果它是逗号分隔然后编辑你的问题,另外你不需要 dateparse 参数这应该工作:
data = pd.read_csv('F2016_11_18_14-2016_11_18_21_datafile.csv', parse_dates='Date', index_col = 'Date') -
这是我的数据,你能告诉我应该如何解决这个问题。
-
试试
data = pd.read_csv('F2016_11_18_14-2016_11_18_21_datafile.csv', parse_dates='Date', index_col = 'Date', delim_whitespace=True) -
正如错误所说,
parse_dates只接受布尔值、列表或字典,所以试试这个:parse_dates=['Date']而不是parse_dates='Date'
标签: python csv pandas time-series