Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中将不正确的日期时间格式从原始csv文件更改为正确的日期时间格式_Python_Csv_Dataframe_Python Datetime - Fatal编程技术网

如何在Python中将不正确的日期时间格式从原始csv文件更改为正确的日期时间格式

如何在Python中将不正确的日期时间格式从原始csv文件更改为正确的日期时间格式,python,csv,dataframe,python-datetime,Python,Csv,Dataframe,Python Datetime,我有一个像这样的Python数据框架 Index Name Dateofbirth 0 A. 12JAN1980:00:00:00.000000 1 B. 17JUN1954:00:00:00.000000 ... 1250000 X. 09DEC1957:00:00:00.0000 问题在于,在原始数据csv文件中,我的日期以这种格式存储%d%m%Y:00:00:00.000000 因此,当我将这个csv文件读入Python并使用以下代码将Date of

我有一个像这样的Python数据框架

Index Name Dateofbirth

0      A.     12JAN1980:00:00:00.000000
1      B.   17JUN1954:00:00:00.000000
...
1250000  X.  09DEC1957:00:00:00.0000
问题在于,在原始数据csv文件中,我的日期以这种格式存储%d%m%Y:00:00:00.000000

因此,当我将这个csv文件读入Python并使用以下代码将Date of birth列转换为datetime时,问题就出现了

df['Dateofbirth'] =pd.to_datetime(df['Dateofbirth'])
我得到以下错误:

提升值错误(“未知字符串格式:”,timestr) ValueError:(“未知字符串格式:”,“1980年1月12日00:00:00.000000

如何将此格式更改为可接受的日期时间格式%Y%m%d%H%m%S? 更改原始csv文件是不可能的,因为有超过1000000行


请提供帮助!对于缺少文本格式,我深表歉意。

您可以尝试此操作,它将返回
出生日期
,类型为object:

df['Dateofbirth'] = pd.to_datetime(df.Dateofbirth)
df['Dateofbirth'] = df['Dateofbirth'].dt.strftime('%Y%m%d %H%M%S')
或者,如果您希望将Dateofbirth作为datetime类型,请使用此选项:

df['Dateofbirth'] = pd.to_datetime(df['Dateofbirth'])
df['Dateofbirth'] = pd.to_datetime(df['Dateofbirth'].dt.strftime('%Y%m%d %H%M%S'))

不,它是以日期优先、年终的形式存储的,但您使用的是
%Y%M%D
,但我没有指定任何需要Y-first格式的地方。任何一种方式都可以。那么我应该如何修改我的代码?您好,可以指定格式,例如:
pd.to\u datetime('13000101',格式='%Y%M%D',错误='ignore'))
,但现在整列都是对象而不是datetime64[ns],我想这不起作用。因为整列仍然是字符串类型(对象),而不是所需的datetime64[ns]感谢您的帮助,还有一个问题是因为我一直在写%m,而它本应是%b。哦,是的,我没有意识到,对不起,您的部分说“更改为”,但您想使用该格式的数据并转换为:D