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))
相关推荐
weixin_4686352912 天前
Pandas 速查笔记
笔记·pandas
Dxy123931021613 天前
DataFrame缺失值处理:完整指南与实战技巧
python·pandas·dataframe
kong790692814 天前
Python核心语法-Pandas读写csv和tsv文件
pandas
Dxy123931021615 天前
DataFrame时间序列操作:从基础到高级的时间数据处理指南
pandas
-To be number.wan17 天前
用 Pandas 分析自行车租赁数据:从时间序列到天气影响的完整实训
python·数据分析·pandas·数据可视化
Dxy123931021618 天前
DataFrame索引功能详解
pandas
没事偷着乐琅20 天前
二、Pandas 是啥 是数据库吗?
数据库·pandas
Flying pigs~~20 天前
Pandas绘图和Seaborn绘图
数据挖掘·数据分析·pandas·seaborn·python可视化
Dxy123931021621 天前
DataFrame数据操作能力深度解析:从基础到高级的完整指南
pandas
好家伙VCC21 天前
# 发散创新:用Python+Pandas构建高效BI数据清洗流水线在现代数据分析领域,**BI(商业智能)工具的核心竞
java·python·数据分析·pandas