Convert string to datetime
我有一个简单的问题,它似乎是一个问过很多次(见这里,这里,这里和这里)。尽管如此,我还是解决不了。
我从csv文件中读取了一个熊猫数据帧。它包含一列,名称为
1 | df = pd.read_csv('activities.csv') |
这就是数据帧头的样子:
1 2 3 4 5 6 7 8 | print(df.head()) start-plan start-actual end-plan end-actual user late 0 12-01-2017 16-01-2017 11-02-2017 10-02-2017 1 0 1 11-05-2017 15-05-2017 10-06-2017 18-06-2017 2 1 2 20-08-2017 20-08-2017 19-09-2017 05-10-2017 3 1 3 10-12-2017 10-12-2017 09-01-2018 08-01-2018 1 0 4 25-04-2017 25-04-2017 25-05-2017 26-05-2017 4 0 |
我试着这样转换列:
1 | pd.to_datetime(pd.Series('start-plan'), format='%d-%m-%y') |
我得到一个错误,说明
我做错什么了?此外,我有几个列的格式与我想要转换的相同。是否有可能一次全部转换?
你在用
尝试:
1 | pd.to_datetime(df['start-plan'], format='%d-%m-%y') |
您也可以使用选项
你可以一次装进去,像这样
1 2 3 4 5 6 7 8 9 10 11 12 13 | cols = ['start-plan', 'start-actual', 'end-plan', 'end-actual'] df = df[cols].apply( pd.to_datetime, dayfirst=True ).join(df.drop(cols, 1)) print(df) start-plan start-actual end-plan end-actual user late 0 2017-01-12 2017-01-16 2017-02-11 2017-02-10 1 0 1 2017-05-11 2017-05-15 2017-06-10 2017-06-18 2 1 2 2017-08-20 2017-08-20 2017-09-19 2017-10-05 3 1 3 2017-12-10 2017-12-10 2018-01-09 2018-01-08 1 0 4 2017-04-25 2017-04-25 2017-05-25 2017-05-26 4 0 |