pandas读取日期后格式变成XXXX-XX-XX 00:00:00

一、前言

前几天在Python最强王者交流群有人问了一个Pandas处理Excel的问题。

问题如下:pandas读取了XXXX-XX-XX的日期后变成XXXX-XX-XX 00:00:00  有什么方式可以读取时不改变日期格式吗?

图片[1]-pandas读取日期后格式变成XXXX-XX-XX 00:00:00-不念博客

二、实现过程

这里【莫生气】问了AI后,给了一个思路:在使用 pandas 读取日期时,如果希望保持日期格式的原样,不自动添加时间部分(如 00:00:00),可以通过以下几种方式来实现:

1、指定列格式:在读取 CSV 文件时,可以通过 pandas.read_csv 方法的 parse_dates 参数来指定日期列的格式。

例如:

import pandas as pd
# 读取 CSV 文件,不解析日期列
df = pd.read_csv('your_file.csv', parse_dates=['date_column'])

这样,日期列 date_column 就不会被自动解析为日期时间格式,而会保持为字符串格式。

2、**使用 datetime.strptime**:如果你在从字符串转换日期时不想添加默认的时间部分,可以手动使用 datetime.strptime 方法来转换。

例如:

import datetime
import pandas as pd
# 假设 date_column 是一个包含日期的列
df['date_column'] = pd.to_datetime(df['date_column'], format='%Y-%m-%d')

这里 format='%Y-%m-%d' 指定了日期字符串的格式。

3、读取 Excel 文件时指定格式:当读取 Excel 文件时,可以使用 pandas.read_excel 方法的 date_parser 参数来指定日期列的格式。

例如:

import pandas as pd
# 读取 Excel 文件,指定日期列的格式
df = pd.read_excel('your_file.xlsx', date_parser='%Y-%m-%d')

这样,日期列就会按照 %Y-%m-%d 的格式来解析,而不会添加额外的时间信息。

通过这些方法,你可以根据需要读取日期,而不会让 pandas 自动更改日期格式。

记住,如果你之后需要进行日期时间运算,可能需要将日期列转换为正确的 datetime 类型。

© 版权声明
THE END