文章目录

  • 逻辑详解
  • 全部案例代码

逻辑详解

  1. 首先我们看常见的日期格式:2021-01-012021/01/01等等,因此通过以下两个规则判断:
  2. 规则一:每一个单元格的长度都相同
  3. 规则二:每一个单元格的内容,按照某个字符切分后都是等长的

判断一个series是否可以转换为datetime

def check_is_datetime(series, time_mark='-') -> bool:if series.dtype == 'object':# 1. 长度相同series_len = series.str.len()for i in range(len(series_len)):if series_len[0] != series_len[i]:return False# 2. 被切分后都有三份for sp in series.str.split(time_mark):if len(sp) != 3:return Falsereturn Trueelif series.dtypes == 'datetime64[ns]':return Trueelse:return False

全部案例代码

import pandas as pd# 判断一个series是否为datetime格式
def check_is_datetime(series, time_mark='-') -> bool:if series.dtype == 'object':# 1. 长度相同series_len = series.str.len()for i in range(len(series_len)):if series_len[0] != series_len[i]:return False# 2. 被切分后都有三份for sp in series.str.split(time_mark):if len(sp) != 3:return Falsereturn Trueelif series.dtypes == 'datetime64[ns]':return Trueelse:return Falsedef check_date(dataframe: pd.DataFrame):check_list = []for index, series in dataframe.iteritems():check_list.append(check_is_datetime(series, time_mark='-'))return check_listif __name__ == '__main__':df = pd.DataFrame([['2021-01-01', 'hahhah', '9340do', 43, 123.23, '2021-01-01'],['2022-02-02', 'balbal', 'jsi0-2-3', 12, 34.0, '2022-02-02'],['2023-03-03', 'kkk', '123vd-2f', 23, 12.0, '2023-03-03'],], columns=['time1', 'str1', 'str2', 'int1', 'float1', 'time2'])check_datetime_list = check_date(df)print(check_datetime_list)  # 返回是时间格式的列print(df.iloc[:, check_datetime_list])  # 打印时间所在列

打印内容:

[True, False, False, False, False, True]time1       time2
0  2021-01-01  2021-01-01
1  2022-02-02  2022-02-02
2  2023-03-03  2023-03-03

pandas判断dataframe中一列是否为日期格式相关推荐

  1. pandas使用isna函数和any函数判断dataframe中的每一个数据列中是否包含缺失值

    pandas使用isna函数和any函数判断dataframe中的每一个数据列中是否包含缺失值(check if column contains any missing values in dataf ...

  2. pandas基于dataframe字符串数据列不包含特定字符串来筛选dataframe中的数据行(rows where values do not contain substring)

    pandas基于dataframe字符串数据列不包含(not contains)特定字符串来筛选dataframe中的数据行(rows where values do not contain subs ...

  3. pandas使用rename函数重命名dataframe中数据列的名称、从而创建一个包含重复列名称的dataframe数据集

    pandas使用rename函数重命名dataframe中数据列的名称.从而创建一个包含重复列名称的dataframe数据集 目录

  4. pandas将dataframe中的年、月、日数据列合并成完整日期字符串、并使用to_datetime将字符串格式转化为日期格式

    pandas将dataframe中的年.月.日数据列合并成完整日期字符串.并使用to_datetime将字符串格式转化为日期格式 目录

  5. pandas将dataframe中的特定数据列的内容转化为列表list数据(convert dataframe column values into a list)

    pandas将dataframe中的特定数据列的内容转化为列表list数据(convert dataframe column values into a list) 目录 pandas将datafra ...

  6. pandas基于dataframe字符串数据列包含(contains)特定字符串来筛选dataframe中的数据行(rows where values contain substring)

    pandas基于dataframe字符串数据列包含(contains)特定字符串来筛选dataframe中的数据行(rows where values contain substring) 目录

  7. pandas计算dataframe两列数据值相等的行号、取出DataFrame中两列值相等的行号

    pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号 目录 pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号

  8. pandas将dataframe中的内容为列表(list)的数据列裂变、拆分为多个新的数据列实战:拆分为多个新的数据列(并指定新数据列的名称)、数据列中的列表(不等长)拆分为多个新的数据列产生NaN

    pandas将dataframe中的内容为列表(list)的数据列裂变.拆分为多个新的数据列实战:拆分为多个新的数据列(并指定新数据列的名称).数据列中的列表(不等长)拆分为多个新的数据列(产生NaN ...

  9. pandas从dataframe中删除一个或多个数据列

    pandas从dataframe中删除一个或多个数据列 目录 pandas从dataframe中删除一个或多个数据列 #删除数据列的基本语法

最新文章

  1. 老板:kill -9的原理都不知道就敢到线上执行,明天不用来了
  2. Swift: 可变参数
  3. ShardingSphere 系列
  4. 漫谈移动开发中的组件化
  5. TFS - Team Foundation Server 的安装记录
  6. tqdm: ‘module‘ object is not callable
  7. 搭建属于自己的技术博客
  8. 电脑缺失MSVCP110.dll文件
  9. c语言一元二次方程代码,一元二次方程求解程序完整代码
  10. 团部培训笔记-设计模式-《2013-11-27 代理模式》
  11. Matlab之数据的输入与输出
  12. 实力封装:Unity打包AssetBundle(三)
  13. matlab wnetreg,MATLAB神经网络工具箱函数
  14. 兄弟连视频教程下载地址汇总-2014
  15. OpenCL编程实例: 向量计算
  16. jabber android apk,Android版Jabber — 快速入门指南
  17. 词法分析(三):有限自动机DFA与NFA
  18. 图中PNP型三极管发射极和基极为什么要加个100K(R21)的电阻?
  19. 服务器系统计划任务不执行,Windows 2008 r2任务计划程序执行批处理失败问题解决方法...
  20. 如何在MMIT上使用WMLScript文件(How To Use WMLScript Files With MMIT)

热门文章

  1. c语言四大淡水湖大小设计任务,[讨论]四大淡水湖的大小排序问题(逻辑题)
  2. 桌面计算机安全策略,设置组策略实现Windows桌面显示计算机信息
  3. STL之inner_product
  4. Opennms配置SNMP
  5. 使用Stack进行递归
  6. js——window.open用法
  7. centos编译安装LNMP
  8. java设计模式_备忘录模式
  9. 第三十六课:告别演出
  10. 《Android开发从零开始》——26.数据存储(5)