pandas read excel 更改string列为时间类型

设想我们有如下一个excel文件

我们都知道上面那个时间列其实是string类型,因此在用pandas做时间校验的时候会不通过,我们可以在read_excel的时候,指定这一列做转换

python 复制代码
import pandas as pd
from datetime import datetime, timedelta
import numpy as np
from dateutil.parser import parse
def indexes(iterable, obj):
    return (index for index, elem in enumerate(iterable) if elem == obj)

def func1(args):
  try:
    return parse(str(args))
  except:
    return np.nan

excel = pd.read_excel(r'C:\Users\84977\Desktop\test.xlsx',sheet_name=None,converters={"时间列":func1})#converters={"时间列":datetime})
errordata = set()
for sheet_name, df in excel.items():
  m = df['时间列'].apply(lambda v: isinstance(v, datetime))
  datacolumn = pd.to_datetime(np.where(m, df['时间列'].astype(str), np.NaN))
  idxs = indexes(list(datacolumn.isnull()), True)
  nulldata = list(idxs)
  for index,item in enumerate(datacolumn):      
    if index not in nulldata:
        if item.strftime('%Y-%m')!='2022-03':
            errordata.add(index)
    elif index in nulldata:
        errordata.add(index)
print(list(errordata))
相关推荐
李昊哲小课12 天前
PyArrow 完整教程
大数据·数据分析·pandas·pyarrow
云和数据.ChenGuang12 天前
T5大模型
人工智能·机器人·pandas·数据预处理·数据训练
MATLAB代码顾问14 天前
Python Pandas数据分析入门指南
python·数据分析·pandas
themingyi16 天前
Abaqus2024安装python包pandas
开发语言·python·pandas
一晌小贪欢16 天前
第26节:自动化办公——利用 Python 自动生成动态分析报告 (PPT/PDF)
开发语言·python·数据分析·自动化·powerpoint·pandas·数据可视化
留白_16 天前
pandas练习题
python·数据分析·pandas
留白_16 天前
pandas进阶学习
学习·pandas
abcy07121317 天前
python pandas csv异步后台清洗前端优先返回成功信息
前端·python·pandas
留白_18 天前
pandas文件读取与存储
开发语言·python·pandas
SilentSamsara18 天前
特征工程系统方法论:编码、分箱、交互特征与特征选择
开发语言·人工智能·python·机器学习·青少年编程·信息可视化·pandas