我无法使用python日期时间更改日期格式



我有一个数据帧,它包含日期值中的一列​​在字符串模式下。我想把它转换成日期时间,但我根本做不到。

我第一次尝试让datetime函数自动检测它,但它做不到。我也尝试过手动操作,但也没有找到解决方案。日期格式为"2020年1月1日",月份为西班牙语格式,同时,正如您所看到的,它在9之前的日子中不包含双0。

我使用了不同的代码,但在这里我展示了一些代码的示例。

import pandas as pd 
import datetime
dfweight = pd.read_csv('data_weight.csv') 
pd.to_datetime(dfweight['Fecha'], format='%d %b, %Y')

他抛出的位置:ValueError:时间数据"2020年5月12日"与格式"%d%b,%Y"(匹配(不匹配

我还尝试添加了#(%#d(,所以当我在一些评论中看到时,它不会显示0到9,但它显示了以下错误。

ValueError:"#"是格式为"%#d%b,%Y"的错误指令

如果有人能帮我,我会提前感谢你,因为我被阻止了。提前感谢

由于使用西班牙语格式,因此需要设置西班牙语locale

  1. 在shell中,运行locale-gen。这样可以确保您拥有必要的本地化文件
>> sudo locale-gen es_ES.UTF-8
Generating locales (this might take a while)...
es_ES.UTF-8... done
Generation complete.
  1. 在python中,首先设置区域设置。然后调用类似CCD_ 3的东西。如果您为日期格式代码传递了正确的字符串(如"%d %b %Y"(,那么0应该无关紧要
>> python3
Python 3.7.4 (default, Aug 13 2019, 20:35:49)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> import datetime
>>> locale.setlocale(locale.LC_TIME, 'es_ES.UTF-8')
'es_ES.UTF-8'
>>> datetime.datetime.strptime("1 Ago 2020", "%d %b %Y")
datetime.datetime(2020, 8, 1, 0, 0)
>>> datetime.datetime.strptime("09 Ago 2020", "%d %b %Y")
datetime.datetime(2020, 8, 9, 0, 0)

相关内容

  • 没有找到相关文章

最新更新