pandas用python3读取csv规范化日期

时间:2016-01-18 04:49:22

标签: python csv pandas

Relativity新的python / pandas用户在这里。我需要一些帮助来弄清楚如何规范化日期。我有一个数据集,其中日期列有不同类型的格式。像这样的东西(到目前为止,这2种是我见过的格式类型):

 DATE          PRICE
 12/26/2015     XXX
 12/26/2015     YYY
 25-Dec-15      ZZZ
 25-Dec-15      WWW

每当我打印出来时,它都是dtype:object。还有哪些其他步骤来规范化日期?

编辑:只是为了补充一点,假设该文件是csv文件。

2 个答案:

答案 0 :(得分:2)

可能更好的是通过参数parse_dates在函数read_csv中解析日期时间:

import pandas as pd
import io

temp=u"""DATE          PRICE
 12/26/2015     XXX
 12/26/2015     YYY
 25-Dec-15      ZZZ
 25-Dec-15      WWW"""

#after testing change io.StringIO(temp) to filename
df = pd.read_csv(io.StringIO(temp), sep="\s+", parse_dates=['DATE'])

print df

        DATE PRICE
0 2015-12-26   XXX
1 2015-12-26   YYY
2 2015-12-25   ZZZ
3 2015-12-25   WWW

print df.dtypes

DATE     datetime64[ns]
PRICE            object
dtype: object

print df.index

Int64Index([0, 1, 2, 3], dtype='int64')

或者,如果您想将index设置为DatetimeIndex

#after testing change io.StringIO(temp) to filename    
df = pd.read_csv(io.StringIO(temp), sep="\s+", parse_dates=['DATE'], index_col=['DATE'] )

print df

           PRICE
DATE            
2015-12-26   XXX
2015-12-26   YYY
2015-12-25   ZZZ
2015-12-25   WWW

print df.dtypes

PRICE    object
dtype: object
print df.index

DatetimeIndex(['2015-12-26', '2015-12-26', '2015-12-25', '2015-12-25'], dtype='datetime64[ns]', name=u'DATE', freq=None)

答案 1 :(得分:1)

假设它是一个csv文件

df=pd.read_csv("f.csv")
df['DATE']=pd.to_datetime(df['DATE'])
print df.dtypes

这应该会转换日期'进入日期时间对象