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

Posted

技术标签:

【中文标题】如何在熊猫中将字符串日期转换为数字[重复]【英文标题】:How to convert string date to numeric in pandas [duplicate] 【发布时间】:2019-07-25 13:57:25 【问题描述】:

我已经使用以下命令读取了一个 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

【问题讨论】:

到目前为止您尝试了哪些方法,您遇到了哪些问题? 我尝试使用:df.created_at.str.replace("Mar",03) 它有效,但如果我想每个月都这样做,我会说它不是很有效:/ 所以如果parse_dates=['created_at']) 不工作? @jezrael 我不确定parse_dates=['created_at']) 是什么意思创建的列已经在 parse_dates 中 @stefan - 那么原始数据是什么,df=df.read_csv("path",parse_dates=[['Local Date', 'Local Time']]) 之前的前 5 行? 【参考方案1】:

只是为了测试尝试将您的列 created_at 转换为 pd.to_datetime

数据帧

>>> 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'])

【讨论】:

感谢您的回答,但不幸的是代码可以工作,但绝对没有任何变化 @stefan,如果答案帮助您将此标记为已接受答案help is here to get it :-)【参考方案2】:

试试这个

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

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

【讨论】:

以上是关于如何在熊猫中将字符串日期转换为数字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫中将索引转换为日期时间?

如何在c#中将字符串转换为日期[重复]

如何在python中将字符串转换为日期时间[重复]

如何在 C# 中将字符串转换为日期时间 [重复]

如何在Android中将时间戳字符串转换为日期[重复]

在熊猫中将索引转换为日期时间