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))
相关推荐
lkx097881 天前
01-数据分析入门-Pandas实战
数据挖掘·数据分析·pandas
淼澄研学3 天前
Python自动化办公实操:基于pandas与requests的5个提效场景解析
python·自动化·pandas
Y3815326629 天前
serpbase + Pandas + Jupyter 数据分析实战
jupyter·数据分析·pandas
元Y亨H10 天前
numpy与pandas 的介绍
numpy·pandas
小大宇11 天前
python pandas dataFrame sqlAlchemy案例
python·pandas
chouchuang12 天前
day-040-Pandas可视化与实战
pandas
chouchuang15 天前
day-037-Pandas数据读取
pandas
benchmark_cc16 天前
如何用 Python 进行多周期 K 线合成与时区对齐?基于 QuantDash 与 Pandas 的量化数据清洗实战(附 GitHub 源码)
开发语言·python·github·盯盘·pandas·quantdash·量化数据
梅雅达编程笔记17 天前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
梅雅达编程笔记17 天前
零基础学 Python 第15章 | 类与对象:面向对象编程入门
开发语言·python·django·numpy·pandas