【发布时间】:2014-02-20 07:12:01
【问题描述】:
对于多次提出已全面解决的问题,我深表歉意。我的问题是我试图复制粘贴来自 SO 帖子的示例,但对我没有任何帮助。我有“dd mm YYYY HH mm ss 值”形式的数据。我想把它读成一个熊猫数据框,第一列是一个日期字符串。以下是我从 SO 帖子中尝试的示例: 1. 第一个样本数据
01 05 2013 00 00 00 26.4 16.5
02 05 2013 00 00 00 25.9 17.7
03 05 2013 00 00 00 26.6 17.4
......
添加 HH mm ss 的零只是为了完全符合示例。
-
其次是导入的包
从日期时间导入日期时间 将熊猫导入为 pd 导入操作系统 从 cStringIO 导入 StringIO
fname = os.path.expanduser('./temps0.txt')
-
现在我尝试了三个例子
一) 来自 SO 帖子:
Parse dates when year month day and hour are in separate columns using pandas in python
def dt_parse(date_string): dt = pd.datetime.strptime(date_string, '%d %m %Y') 返回 dt df = pd.read_csv(fname, header=None, index_col='datetime', parse_dates={'datetime': [0,1,2,4,5,6]}, date_parser=lambda x: pd.datetime.strptime(x, '%d %m %Y')) date_parser=dt_pasre)
这是错误的一部分
File "/home/zmumba/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py",
line 1763, in _try_convert_dates
colnames.append(str(columns[c]))
IndexError: list index out of range
b) 另一个尝试,来自 SO 帖子:
https://stackoverflow.com/questions/11615504/parse-dates-when-yyyymmdd-and-hh-are-in-separate-columns-using-pandas-in-python
parse = lambda x: datetime.strptime(x, '%d%m%Y')
pd.read_table("./temps0.txt", parse_dates = [['DD MM YYYY HH mm ss']],
index_col = 0,
date_parser=parse)
这是错误的一部分
File "/home/zmumba/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py",
line 1009, in _set
self._reader.set_noconvert(names.index(x))
ValueError: 'DD MM YYYY HH mm ss' is not in list
c) 另一个尝试,来自 SO 帖子:
https://stackoverflow.com/questions/17301589/parsing-dd-mm-yy-hh-mm-ss-columns-from-txt-file-using-pythons-pandas?lq=1
def date_parser(ss):
day, month, year, hour, min, sec = ss.split()
return pd.Timestamp('20%s-%s-%s %s:%s:%s' % (year, month, day, hour, min, sec))
df = pd.read_csv('temps0.txt', header=None, sep='\s+\s', parse_dates=[[0]], date_parser=date_parser)
这是错误的一部分
File "<stdin>", line 2, in date_parser
ValueError: too many values to unpack
请原谅我的无知,因为我主要是通过 SO 帖子来学习(为了清晰起见,官方文档完全没有示例)。
【问题讨论】:
-
如果您可以在 github 问题上发布您认为示例缺乏清晰性的地方,那将非常有帮助。 github.com/pydata/pandas/issues/new
-
谢谢,我会这样做,但与此同时,我希望能在手头的问题上得到帮助