Python 怪异日期格式YY-mm-dd中的部分列和YY-dd-mm中的其余列

Python 怪异日期格式YY-mm-dd中的部分列和YY-dd-mm中的其余列,python,pandas,datetime,Python,Pandas,Datetime,这是一个奇怪的问题,但我有一个2018年11月10日的原始excel,当我使用以下方法将列转换为datetime时,就会出现上述问题: df.Date = pd.to_datetime(df['Date']) 因此日期列是2018-01-11,那么日期/月份是相等的,例如2018-11-11,它交换了前一行的格式,而该行是现在的 ''2018-11-12'' ''2018-11-13'' 我试着为每个条目写一个for循环来改变序列,但是get error不能改变序列,然后我试着写一个循环

这是一个奇怪的问题,但我有一个2018年11月10日的原始excel,当我使用以下方法将列转换为datetime时,就会出现上述问题:

df.Date = pd.to_datetime(df['Date'])
因此日期列是2018-01-11,那么日期/月份是相等的,例如2018-11-11,它交换了前一行的格式,而该行是现在的

 ''2018-11-12''
 ''2018-11-13''
我试着为每个条目写一个for循环来改变序列,但是get error不能改变序列,然后我试着写一个循环,但是得到了time error

for date_ in jda.Date:
    jda.Date[date_] = jda.Date[date_].strftime('%Y-%m-%d')

KeyError: Timestamp('2019-05-17 00:00:00')
Beow是一张forat发生变化的图片 谢谢你的帮助


如果日期以字符串形式保存,则解决方案:

我认为问题在于解析的日期时间是错误的,因为默认情况下,
10/11/2018
解析到
11.10.2018
,所以如果需要解析到
10。2018年11月
format add
dayfirst=True
参数输入:

或者您可以为
DD/MM/YYYY
指定格式,例如
%d/%m/%Y

df.Date = pd.to_datetime(df['Date'], format='%d/%m/%Y')

Excel日期没有格式。内部表示形式为十进制(OADate)。它们在应用程序中的显示方式取决于单元格的样式。熊猫应该把这些数值作为开始的日期。另一方面,如果一个邪恶的用户存储了字符串而不是日期,你就无法知道格式是什么。Excel会自动将本地化日期转换为OADate值,这意味着用户使用了不同的格式,您现在必须知道这些日期在Excel文件中的外观如何?是不是有些行有日期,有些行有文本?您能否检查发生更改的点周围的行,尤其是样式?如果单击单元格本身,您会在编辑框中看到什么值?它可能是以滴答声开始的吗?这意味着用户强迫它发送文本。当样式为数字或dateHi Panagiotis时,Excel本身将在包含文本的任何字段的左上角显示一个绿色三角形-所有Excel行都是一致的-如何知道用户是否将其存储为字符串?如果你的意思是它们在引号中-不,它们不是。你可能希望将
dayfirst=True
传递到
pd.to\u datetime
。您好,谢谢我尝试了所有这些,但没有用。Excel日期存储为小数,而不是字符串。Pandas应该将这些值作为datesmany Thank@jezraell加载,这不是字符串。谢谢大家-一个难题。我通过编写一个if语句将这两种格式都作为输入来避免这个问题
df.Date = pd.to_datetime(df['Date'], format='%d/%m/%Y')