Csv 熊猫:将时间戳和毫秒转换为DatetimeIndex

Csv 熊猫:将时间戳和毫秒转换为DatetimeIndex,csv,pandas,date-parsing,Csv,Pandas,Date Parsing,与 我得到: df = read_csv('data\query.csv') 我发现这个 TIMESTAMP MILLISECONDS PRICE 0 15.10.2012 08:00:06 350 24.6 1 15.10.2012 08:00:06 630 24.7 2 15.10.2012 08:00:06 640 24.9 3 15.10.2012 08:00:06 650 24.5 4

我得到:

df = read_csv('data\query.csv')
我发现这个

    TIMESTAMP   MILLISECONDS    PRICE
0   15.10.2012 08:00:06     350     24.6
1   15.10.2012 08:00:06     630     24.7
2   15.10.2012 08:00:06     640     24.9
3   15.10.2012 08:00:06     650     24.5
4   15.10.2012 08:00:06     710     24.3
正在将前两列连接到字符串,但仍无法将索引识别为DatetimeIndex

另外这个

df = read_csv('data\query.csv', parse_dates=[[0, 1]], index_col=0)
正在做转换工作

问题:如何在读取csv时一次性完成转换和DatetimeIndex?

(参见[188]:来自dateutil导入解析器)
Import datetime
datetime.datetime.strptime("15.10.2012 15:30:00 890", "%d.%m.%Y %H:%M:%S %f")
在[189]中:从StringIO导入StringIO 在[190]:data=“”\ 时间戳;毫秒;价格 15.10.2012 08:00:06;350;24.6 """ 在[191]中:定义日期解析器: 返回parser.parse(s[:-4]).replace(微秒=int(s[-3:])*1000) .....: 在[192]:df=pd.read_csv(StringIO(data),sep=';',parse_dates=[[0,1]],date_parser=date_parser) In[193]:df Out[193]: 时间戳价格 0 2012-10-15 08:00:06.350000 24.6 在[194]中:df.set\u index('TIMESTAMP\u millides',inplace=True) Out[194]: 价格 时间戳\u毫秒 2012-10-15 08:00:06.350000 24.6 In[195]:df.index Out[195]: [2012-10-15 08:00:06.350000] 长度:1,频率:无,时区:无
<代码> < P>请考虑将转换器添加到熊猫代码:

另见:

您是否尝试过
.to_timestamp()


您可以找到文档。

您可以显示csv文件的片段吗?也许你需要一个转换器。我的csv包含一个标题行,三列,列是分号delmited:TIMESTAMP;毫秒;价格:2012年10月15日08:00:06;350;24.6
In [188]: from dateutil import parser

In [189]: from StringIO import StringIO

In [190]: data = """\
TIMESTAMP;MILLISECONDS;PRICE
15.10.2012 08:00:06;350;24.6
"""

In [191]: def date_parser(s):
    return parser.parse(s[:-4]).replace(microsecond=int(s[-3:])*1000)
   .....:

In [192]: df = pd.read_csv(StringIO(data), sep=';', parse_dates=[[0, 1]], date_parser=date_parser)

In [193]: df
Out[193]:
       TIMESTAMP_MILLISECONDS  PRICE
0  2012-10-15 08:00:06.350000   24.6

In [194]: df.set_index('TIMESTAMP_MILLISECONDS', inplace=True)
Out[194]:
                            PRICE
TIMESTAMP_MILLISECONDS
2012-10-15 08:00:06.350000   24.6

In [195]: df.index
Out[195]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-10-15 08:00:06.350000]
Length: 1, Freq: None, Timezone: None
df_trend = pd.read_csv('googletrends.csv',parse_dates=True, index_col=0)
ts_iphone = df_trend.ix['2007':'2013','iphone'].to_timestamp()