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))
相关推荐
yuanpan6 小时前
Python Pandas 库入门:介绍与基本使用教程
开发语言·python·pandas
2401_8274999921 小时前
数据分析学习05(黑马)-Pandas
学习·数据分析·pandas
2501_921960852 天前
协同本体论:元公理体系、普适演化律则与工程范式统一构建
python·重构·numpy·pandas·scipy
唐骁虎3 天前
使用SQLAlchemy查询Pandas DataFrame
数据库·oracle·pandas
万粉变现经纪人3 天前
如何解决 pip install jaxlib[cuda] 报错 CUDA 版本与轮子标签不匹配 问题
人工智能·python·深度学习·tensorflow·pandas·scikit-learn·pip
Yu_Lijing4 天前
Python数据分析和数据处理库Pandas(数据组合函数)
人工智能·数据挖掘·数据分析·pandas
Yu_Lijing5 天前
Python数据分析和数据处理库Pandas(DataFrame数据分析入门)
人工智能·python·数据分析·pandas
星越华夏6 天前
Pandas实现excel的IF函数功能
excel·pandas
啦啦啦_99997 天前
Pandas之Series对象
pandas
xiaotao1319 天前
01-编程基础与数学基石:概率与统计
人工智能·python·numpy·pandas