Pandas Python:移除日期字段末尾0:00时间戳求助
解决Pandas转换XLSX到CSV时移除日期后的0:00时间部分
嘿,刚接触Pandas和Python是吧?别担心,这个日期格式的问题超常见,我来给你几个简单的解决办法!
从你给出的数据和代码片段来看,问题出在Excel里的日期被读取成了带时间的datetime格式,转CSV时就带出了0:00。咱们只需要把这些日期列处理成仅保留日期部分就行,具体步骤如下:
方法一:读取Excel时直接解析并格式化日期
这种方法最高效,在读取阶段就处理好日期:
import pandas as pd # 读取Excel,把包含日期的列(按索引指定,比如你的数据里是第5、8、9、11列,从0开始计数)解析为datetime df = pd.read_excel('你的输入文件.xlsx', parse_dates=[5, 8, 9, 11]) # 把这些日期列格式化为你想要的日期字符串(比如MM/DD/YYYY) date_column_indices = [5, 8, 9, 11] for idx in date_column_indices: df.iloc[:, idx] = df.iloc[:, idx].dt.strftime('%m/%d/%Y') # 保存为CSV,去掉索引列 df.to_csv('你的输出文件.csv', index=False)
方法二:先读取数据,再批量处理日期列
如果你不确定日期列的索引,或者更习惯用列名操作,可以试试这个:
import pandas as pd df = pd.read_excel('你的输入文件.xlsx') # 先确认日期列的名称,你可以先运行print(df.columns)查看所有列名 date_column_names = ['列名1', '列名2', '列名3', '列名4'] # 替换成你实际的日期列名 # 把这些列转换为datetime类型 df[date_column_names] = df[date_column_names].apply(pd.to_datetime) # 格式化为仅日期的字符串 df[date_column_names] = df[date_column_names].apply(lambda x: x.dt.strftime('%m/%d/%Y')) # 保存CSV df.to_csv('你的输出文件.csv', index=False)
小提示:
- 如果你想要的日期格式是
DD/MM/YYYY(日/月/年),只需要把strftime里的格式改成'%d/%m/%Y'就行。 - 运行代码前可以先用
df.head()查看数据,确认日期列的位置或名称是否正确,避免搞错列哦!
内容的提问来源于stack exchange,提问作者New_to_Python
相关产品推荐
相关产品推荐

