Python 数据框中的行数达到一定数量后,日期格式将变回上一行

Python 数据框中的行数达到一定数量后,日期格式将变回上一行,python,pandas,date,datetime-format,Python,Pandas,Date,Datetime Format,我正在使用pd.read_excel()将数据加载到有两列的数据框中 第一列为日期和时间,格式如下 2018年4月12日03:45:00 第二列包含污染指数值 我将日期和时间列的数据类型转换为日期和时间,然后尝试将日期和时间分为两个不同的列,即日期和时间 # converted dtype to dateandtime df['Date and Time'] = pd.to_datetime(df['Date and Time']) # extracting d

我正在使用pd.read_excel()将数据加载到有两列的数据框中

  • 第一列为日期和时间,格式如下
2018年4月12日03:45:00

  • 第二列包含污染指数值
我将日期和时间列的数据类型转换为日期和时间,然后尝试将日期和时间分为两个不同的列,即日期和时间

   # converted dtype to dateandtime
   df['Date and Time'] = pd.to_datetime(df['Date and Time'])
   
   # extracting date into one column in dd-mm-yyyy format
   df['Date'] = df['Date and Time'].dt.date
   df['Date'] = pd.to_datetime(df['Date']).dt.strftime("%m/%d/%y")
   
   #extracting time in another column
   df['Time'] = df['Date and Time'].dt.time
但在第1100行之后,日期发生了变化

  • 至:mm dd yyyy格式
  • 从:dd-mm-yyyy格式
你知道是什么导致了这种行为吗?
我希望在整个数据帧中使用dd-mm-yyyy格式的日期。

在代码的第一行,日期是由
pd.to\u datetime
以错误的方式确定的。所以它与第1100行中的数据类型更改无关。仅从第一行读取的日期不正确

df['Date and Time'] = pd.to_datetime(df['Date and Time'], format='%d/%m/%Y %H:%M:%S')

df['Date'] = df['Date and Time'].dt.date
df['Date'] = pd.to_datetime(df['Date']).dt.strftime("%d/%m/%y")

df['Time'] = df['Date and Time'].dt.time

此格式
%m/%d/%y
不是
dd-mm-yyyy
。它是
mm-dd-yyyy
。在你的代码中更正,然后再次查看。它也引起了我的注意,但它给出了我想要的格式,即dd-mm-yyyy。谢谢@abhilashawashi我根据你的观察重新编写了代码,现在它工作了。谢谢好的,你能接受答案吗。