标签导航:

pandas保存csv为excel后时间数据丢失了,如何解决?

Pandas处理CSV转Excel时间数据丢失问题

在使用Pandas将CSV文件转换为Excel文件(xlsx)时,经常会遇到时间列数据丢失变成NaN的问题。本文将分析原因并提供解决方案。

问题:

从CSV文件(包含时间列,例如“审核入库时间”)导入数据到Pandas DataFrame,再保存为xlsx文件。重新读取xlsx文件时,时间列数据变为NaN。

原因分析:

Pandas读取CSV和Excel文件对日期时间数据的处理方式不同。read_csv()通常能自动识别并正确解析CSV中的日期时间,但to_excel()保存的xlsx文件可能会丢失或改变时间数据的格式信息。read_excel()默认无法识别这些格式变化,导致解析为NaN。

解决方案:

在读取xlsx文件时,使用parse_dates参数指定时间列,并用date_parser参数提供自定义函数进行日期时间解析。此函数利用pd.to_datetime(),并根据实际时间数据格式指定格式字符串。

代码示例:

假设你的时间列名为“审核入库时间”,且时间格式为“%Y-%m-%d %H:%M:%S”,则代码如下:

import pandas as pd

df = pd.read_excel('output.xlsx', parse_dates=['审核入库时间'], 
                   date_parser=lambda x: pd.to_datetime(x, format='%Y-%m-%d %H:%M:%S'))

请根据你的实际时间数据格式修改format参数。 例如,如果你的时间格式是"YYYY/MM/DD HH:mm:ss",则应将format参数改为'%Y/%m/%d %H:%M:%S'。

通过此方法,Pandas可以正确解析xlsx文件中的时间数据,避免NaN值出现。 记得替换'output.xlsx'和'审核入库时间'为你的实际文件名和列名。