如何在熊猫中将字符串日期转换为数字

时间:2019-03-04 09:22:59

标签: python pandas date datetime

我已经使用以下命令读取了一个csv文件:

df=df.read_csv("path",parse_dates=[['Local Date', 'Local Time']])

我有以下输出:

             created_at     Close      Open    Volume     Day
0      01-Mar-2019 00:47  25916.00  25916.00    141383   STABLE
1      01-Mar-2019 00:21  25916.00  25916.00         1   STABLE
2      01-Mar-2019 00:20  25916.00  25916.00        74   STABLE
3      01-Mar-2019 00:19  25916.00  25916.00       222   STABLE
4      01-Mar-2019 00:18  25916.00  25916.00    108257   STABLE
...           ...           ...        ...         ...     ...

我想通过以下方式转换“ created_at”列:

           created_at     Close      Open    Volume     Day
0      01-03-2019 00:47  25916.00  25916.00    141383   STABLE
1      01-03-2019 00:21  25916.00  25916.00         1   STABLE
2      01-03-2019 00:20  25916.00  25916.00        74   STABLE
3      01-03-2019 00:19  25916.00  25916.00       222   STABLE
4      01-03-2019 00:18  25916.00  25916.00    108257   STABLE
...           ...           ...        ...         ...     ...

我想将以“字母”形式书写的月份“转换”为“数字”形式。

Csv file

2 个答案:

答案 0 :(得分:0)

尝试一下

df ['dt2'] = pd.to_datetime(df.created_at).dt.strftime('%d-%m-%Y%H:%M')

首先它将字符串转换为日期,然后将其转换为具有所需格式的字符串。

答案 1 :(得分:0)

仅测试一下将列created_at转换为pd.to_datetime

DataFrame

>>> df
          created_at
0  01-Mar-2019 00:47
1  01-Mar-2019 00:21
2  01-Mar-2019 00:20

结果:

>>> pd.to_datetime(df['created_at'])
0   2019-03-01 00:47:00
1   2019-03-01 00:21:00
2   2019-03-01 00:20:00
Name: created_at, dtype: datetime64[ns]

出于好奇的缘故,如注释中所述,可以将其直接更改为数据框,如下所示:

df['created_at'] = pd.to_datetime(df['created_at'])