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))
相关推荐
AuGuSt_817 小时前
【对比】Pandas 和 Polars 的区别
pandas·polars
weixin_307779138 小时前
PySpark检查两个DataFrame的数据是否一致
大数据·spark·pandas
鹿鸣悠悠1 天前
第二月:学习 NumPy、Pandas 和 Matplotlib 是数据分析和科学计算的基础
学习·numpy·pandas
PowerBI学谦2 天前
Python in Excel高级分析:一键RFM分析
大数据·人工智能·pandas
数据媛2 天前
机器学习_13 决策树知识总结
人工智能·python·决策树·机器学习·numpy·pandas·sklearn
数据媛3 天前
机器学习_18 K均值聚类知识点总结
python·机器学习·均值算法·numpy·pandas·scikit-learn·聚类
游王子7 天前
Python Pandas(9):Pandas 相关性分析
开发语言·python·pandas
游王子10 天前
Python Pandas(7):Pandas 数据清洗
开发语言·python·pandas
liuweidong080211 天前
【Pandas】pandas Series var
java·python·pandas
好想写博客13 天前
[深度学习]神经网络-回归项目
pytorch·python·深度学习·神经网络·回归·numpy·pandas