一、前言
前几天在Python最强王者交流群有人问了一个Pandas处理Excel的问题。
问题如下:pandas读取了XXXX-XX-XX的日期后变成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 类型。