Python DataFrame时间格式转换失败

Python DataFrame时间格式转换失败
将 列2015-04-07 08:35:00 转化为2015-04-07
代码如下,预览的print是成功的,但是写进Excel文件之后还是原来的

from pathlib import Path
import pandas as pd
import openpyxl  # 打开表格
import datetime
from openpyxl import load_workbook

input_path = Path("D:\Pycharm\pythonTest\File")  # 当前目录下的文件夹,可以直接输入文件夹名字,可以忽略以往的一长串路径
output_path = Path("D:\Pycharm\pythonTest\File")  # 输入输出文件的路径如果相同,会是一个坑!文字有解释#
input_files = sorted(Path(input_path).glob("*.xlsx"))  # 调取出所有xlsx为结尾的文件
# df = []
i = 0
for file in input_files:
    df = pd.read_excel(file,
                       converters={"CLIENT_ID": str, "ORG_USCC": str, "REGNO": str, "GRID_UNIT_ID": str, "GRID_ID": str,"TEL": str, "GRIDUNIT_CYY_ID": str,
                                   "REGISTER_DATE": str, "FOUND_DATE": str, "CREATE_DATE": str, "STATUS_DATE": str, "UPDATE_DATE": str})
    # print(df["REGISTER_DATE"])
    df['REGISTER_DATE'] = df.REGISTER_DATE.str.slice(0, 11)
    df['REGISTER_DATE'] = pd.to_datetime(df.REGISTER_DATE, dayfirst=True)
    df['FOUND_DATE'] = df.FOUND_DATE.str.slice(0, 11)
    df['FOUND_DATE'] = pd.to_datetime(df.FOUND_DATE, dayfirst=True)
    df['CREATE_DATE'] = df.CREATE_DATE.str.slice(0, 11)
    df['CREATE_DATE'] = pd.to_datetime(df.CREATE_DATE, dayfirst=True)
    df['STATUS_DATE'] = df.STATUS_DATE.str.slice(0, 11)
    df['STATUS_DATE'] = pd.to_datetime(df.STATUS_DATE, dayfirst=True)
    df['UPDATE_DATE'] = df.UPDATE_DATE.str.slice(0, 11)
    df['UPDATE_DATE'] = pd.to_datetime(df.UPDATE_DATE, dayfirst=True)
    # pd.set_option('display.max_columns', None)
    # print(df.head())
    # print(df['REGISTER_DATE'])
    df.to_excel(str(i) + '.xlsx', index=False)  # 如果不需要显示序列号,则index为False
    i = i + 1

输出路径换一个其他目录试试

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7429229
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:(脚本)Python使用dataFrame操作Excel(将重复行的第二列拼接起来)
  • 除此之外, 这篇博客: Python pandas把多个DataFrame对象写入Excel文件中同一个工作表中的 问题描述: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在使用pandas进行数据分析和处理时,需要把相同的DataFrame对象中的数据按顺序先后写入同一个Excel文件中的同一个工作表中,纵向追加。

    方法一: 数据量小,把所有DataFrame对象的数据纵向合并到一起,然后再写入Excel文件,参考代码:

    import pandas as pd
    
    df = []
    for ind in range(10):
    	data = pd.DataFrame(^_^) # dataframe数据
    	df.append(data)
    
    df = pd.concat(df) # 合并所有数据
    df.to_excel(file_name) # 写入excel文件
    

    **方法二:**数据量较大时,DataFrame对象较多,每个DataFrame中的数据量都很大时,可以使用DataFrame对象方法to_excel()的参数startrow来控制每次写入的起始行位置。

    import pd
    
    # 创建写入器对象
    writer = pd. ExcelWriter(file_name, engine= 'openpyxl')
    # 第一个DataFrame对象写入的起始行位置
    # 从第2行开始写,第一行保留为空行
    start_row = 1
    for i in range(500):
    	data= pd. DataFrame(data)
    	data.to_excel(writer, sheet_ name= 'sheet')
    			startrow=start_row, # 指定从哪一行开始写入数据,默认值为0
    			header=False,index=False) # 丢弃DataFrame对象的行标签和列标签
    	#修改下一次开始写入数据的行位置
    	start_row = start_row + data.shape[0]
    #保存数据,关闭文件
    writer.save()
    write.close()
    
  • 您还可以看一下 曾贤志老师的用Python中的Pandas处理数据 课程中的 2.3 DataFrame导出为Excel类型小节, 巩固相关知识点