Python pandas Datetime vs Timestamp导入问题

时间:2015-04-10 23:01:27

标签: python datetime pandas timestamp

导入两个excel文件时,我遇到了一个非常奇怪的错误。第一列中的格式是相同的(excel将其作为自定义'm / d / yy h:mm'表示两者)。我正在使用

导入它们
df = pd.read_excel(df_file, sheet.name, header=0, skiprows=[1],\
parse_cols= [0,5,6], infer_datetime_format=True, index_col=0, na_values=['NAN']) 

奇怪的是,将df.index输出为:

<class 'pandas.tseries.index.DatetimeIndex'>
[2014-04-26 00:00:00, ..., 2014-12-21 11:50:00]
Length: 65532, Freq: None, Timezone: None

而另一个(比如df2)将输出作为datetime.datetime对象列表而不是DatetimeIndex。我尝试使用pd.Timestamp(df2.index)告诉我使用df2.to_timestamp(),但后来它说Index没有属性to_timestamp()。为什么会发生这种情况有哪些常见原因?如果需要,我可以提供文件或更多示例。我希望这只是一件微不足道的事情。谢谢!

根据要求 - 以下是一些可能有助于找出问题的方法。 df2.index的输出是(截断的)

Out[62]:
Index([2014-04-26 00:00:00, 2014-04-26 00:05:00, 2014-04-26 00:10:00, 
2014-04-26 00:15:00, 2014-04-26 00:20:00, ...... 2014-04-26 07:50:00, 
2014-04-26 07:55:00, 2014-04-26 08:00:00, 2014-04-26 08:05:00, 
2014-04-26 08:10:00, 2014-04-26 08:15:00, ...], dtype='object')

type(df2.index [0])是:

datetime.datetime 

df2.index.to_datetime()给出:

ValueError: Unable to convert [datetime.datetime(2014, 4, 26, 0, 0) 
datetime.datetime(2014, 4, 26, 0, 5)
datetime.datetime(2014, 4, 26, 0, 10) ...,
datetime.datetime(2014, 12, 31, 20, 40)
datetime.datetime(2014, 12, 31, 20, 45)
datetime.datetime(2014, 12, 31, 20, 50)] to datetime dtype

如果您仍然需要excel文件,我可以在某处托管它们,哪里有一个大约16 MB左右的文件?

我认为我在这里遇到的真正问题是为什么read_excel不会将日期解析为DatetimeIndex而是将日期时间对象的索引解析。仍然试图弄清楚这一点。

0 个答案:

没有答案