Python 我怎样才能加快这个程序?

Python 我怎样才能加快这个程序?,python,pandas,string-to-datetime,Python,Pandas,String To Datetime,我正在尝试清理数据帧中的某些列,并将其从dtype“object”转换为dtype“datetime”: column_names = ['col a','col b', ...'col n'] df[column_names] = df[column_names].apply(pd.to_datetime, format = '%m/%Y') 但这似乎需要很长的时间——现在我只清理一个大得多的文件的子集 有没有更快的方法来实现这一点 我注意到这个文件是通过pd.read\u csv打开的,即

我正在尝试清理数据帧中的某些列,并将其从dtype“object”转换为dtype“datetime”:

column_names = ['col a','col b', ...'col n']
df[column_names] = df[column_names].apply(pd.to_datetime, format = '%m/%Y')
但这似乎需要很长的时间——现在我只清理一个大得多的文件的子集

有没有更快的方法来实现这一点


我注意到这个文件是通过pd.read\u csv打开的,即使“parse\u dates”设置为True,相关列也会被读取为“object”。

对我来说,它工作得非常好:

import pandas as pd
from pandas.compat import StringIO

temp=u"""a;b;c
2/2015;4/2016;4"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), sep=";", parse_dates=[0,1])

print (df)
           a          b  c
0 2015-02-01 2016-04-01  4

print (df.dtypes)
a    datetime64[ns]
b    datetime64[ns]
c             int64
dtype: object
您还可以定义自定义解析器:

parser = lambda x: pd.to_datetime(x, format='%m/%Y', errors='coerce')
df = pd.read_csv(StringIO(temp), sep=";", parse_dates=[0,1], date_parser=parser)

print (df)
           a          b  c
0 2015-02-01 2016-04-01  4

print (df.dtypes)
a    datetime64[ns]
b    datetime64[ns]
c             int64
dtype: object

日期的格式是什么?不确定命令行“parse_dates=[0,1]”的作用是什么?您的第二个建议几乎肯定会花费我的代码所花费的时间……除非我遗漏了什么。它选择第一列和第二列,然后尝试转换为datetime