pandas 数据表中的字符与日期数据的处理
前面我们有学习过有关字符串的处理和正在表达式,但那都是基于单个字符串或字符串列表的操作。下面将学习如何基于数据框操作字符型变量。
同时介绍一下如何从日期型变量中取出年份,月份,星期几等,如何计算两个日期的时间差。
例题如下:

针对以上数据,读者可以在不看下方代码的情况下尝试着回答这些关于字符型及日期型的问题:
1.如何更改出生日期birthday和手机号码tel两个字段的数据类型
2.如何根据出生日期birthday和开始工作日期start_work两个字段新增年龄和工龄两个字段
3.如何将手机号tel的中间四位隐藏起来。
4.如何基于other字段取出每个人员的专业信息
代码如下:
import pandas as pd
#数据读入
df = pd.read_excel(r'd:data_test03.xlsx')
#各变量数据类型
df.dtypes
#将birthday变量转换为日期型
df.birthday = pd.to_datetime(df.birthday,format = '%Y/%m/%d')
#讲tel变量转换为字符串
df.tel = df.tel.astype('str')
#新增年龄和工龄两列
df['age']=pd.datetime.today().year - df.birthday.dt.year
df['workage'] = pd.datetime.today().year - df.start_work.dt.year
#将手机号码中间四位隐藏起来
df.tel = df.tel.apply(func = lambda x:x.replace(x[3:7],'xxxx'))
#取出邮箱的域名
df['email_domain']=df.email.apply(func = lambda x:x.split('@')[1])
#取出人员的专业信息
df['profession'] = df.other.str.findall('专业:(.*?),') #这个地方要非常注意开始调试的时候我把(.*?)后面的逗号写成是英文模式下的,实际上表格里面是中文模式下的,所以开 始我匹配的结果是空的,改成中文模式的逗号才显示正常
#去除birthday,start_work和other变量
df.drop(['birthday','start_work','other'],axis = 1,inplace = True)
df
out:

1,pd.to_datetime( 要转换的日期, format= ),
2,pd.to_datetime.today( ).year ,pd.to_datetime.now( ).year
3,字符串的astype方法:字段类型转换,
4,日期.dt.year :必须加dt
5,删除字段: df. drop ([ ] , axis=1, inplace=True)
df是数据框的名字,列表[ ] 里是要删除的字段名,
axis=1表示在水平方向,因为默认drop方法是用来删除数据库中的行记录,
inplace=True表示会影响原数组
6,序列的apply ( ) 方法 , apply( func= , )
7,序列使用.str后,可以转换为字符串类型
常见的日期时间处理方法
year 返回年份
month 返回月份
day 返回月份中的日
hour 返回时
minute 返回分钟
second 返回秒
date 返回日期
time 返回时间
dayofyear 返回年中的第几天
dayofweek 返回周几(0-6)
quarter 返回第几季度
weekofyear 返回年中第几周
weekday_name 返回具体的周几名称
days_in_month 返回月中多少天
示例:
import pandas as pd
dates = pd.to_datetime(pd.Series(['1989-8-18 13:14:55','1995-2-16']),format = '%Y-%m-%d %H:%M:%S')
print('返回日期值:\n',dates.dt.date)
print('返回季度:\n',dates.dt.quarter)
print('返回几点钟: \n',dates.dt.hour)
print('返回年中的天: \n',dates.dt.dayofyear)
print('返回年中的周:\n',dates.dt.weekofyear)
print('返回星期几的名称:\n',dates.dt.weekday_name)
print('返回月份的天数:\n',dates.dt.days_in_month)
out:

pandas 数据表中的字符与日期数据的处理的更多相关文章
- 从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接)
从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接) 一.总结 一句话总结:最好的是这个:"SELECT * FROM table WHERE id >= (( ...
- m_Orchestrate learning system---十四、数据表中字段命名规则
m_Orchestrate learning system---十四.数据表中字段命名规则 一.总结 一句话总结:a.保证唯一 b.见名知意 1.注意php中的数组类函数和字符串类函数的前缀? 数组类 ...
- 转:Sql Server中清空所有数据表中的记录
如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍. 使用sql删除数据库中所有表是不难的 ...
- Sql Server中清空所有数据表中的记录
Sql Server中清空所有数据表中的记录 清空所有数据表中的记录: 代码如下:exec sp_msforeachtable @Command1 ='truncate table ?'删除所有数据 ...
- (转)MySQL数据表中带LIKE的字符匹配查询
MySQL数据表中带LIKE的字符匹配查询 2014年07月15日09:56 百科369 MySQL数据表中带LIKE的字符匹配查询 LIKE关键字可以匹配字符串是否相等. 如果字段的值与指定的 ...
- 使用PreparedStatement向数据表中插入、修改、删除、获取Blob类型的数据
使用PreparedStatement向数据表中插入.修改.删除.获取Blob类型的数据 2014-09-07 20:17 Blob介绍 BLOB类型的字段用于存储二进制数据 MySQL中,BLOB是 ...
- excel to datatable (c#用NPOI将excel文件内容读取到datatable数据表中)
将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel 1.第一种是根据excel文件路径读取excel并返回datatable /// <sum ...
- 在数据表中添加一个字段的SQL语句怎么写
如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识. 通用式: alter table [表名] add [字段名] 字 ...
- MySQL查询数据表中数据记录(包括多表查询)
MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...
随机推荐
- npm ERR! Unexpected end of JSON input while
rm -rf node_modules package-lock.json and npm cache clean --force solved it
- JVM笔记-GC常用参数设置
GC常用参数 -Xmn -Xms -Xmx -Xss 年轻代 最小堆 最大堆 栈空间, -Xms -Xmx 一般设置成一样大小, -XX:+UseTLAB 使用TLAB,默认打开 -XX:+Print ...
- Kylin Flink Cube 引擎的前世今生
Apache Kylin™ 是一个开源的.分布式的分析型数据仓库,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,它能在亚秒内查询巨大的表. Ky ...
- PHP imagechar - 写出横向字符
imagechar — 写出横向的字符.高佣联盟 www.cgewang.com 语法 bool imagechar ( resource $image , int $font , int $x , ...
- three.js 自制骨骼动画(一)
上一篇郭先生解析了一下官方的骨骼动画案例,这篇郭先生就要做一个稍微复杂一点的骨骼动画了,就拿一个小人下手吧.在线案例请点击博客原文.话不多说先上大图 骨骼动画在GUI上面都有体现.制作骨骼动画的步骤在 ...
- [转] SpringBoot返回json 数据以及数据封装
作者:武哥 来源:武哥聊编程 https://mp.weixin.qq.com/s/QZk0sKxBX4QZiCTHQIA6pg 1. Spring Boot关于Json的知识点 在项目开 ...
- Spring Boot的自动配置,到底是怎么做到?
作者:祖大帅 链接:juejin.im/post/5b679fbc5188251aad213110 来源:掘金 1. Spring Boot.Spring MVC 和 Spring 有什么区别? 分开 ...
- 【BZOJ4173】数学 题解(数论)
前言:体验到了推式子的快感orz 题目大意:求$\varphi(n)*\varphi(m)*\sum_{n\ mod\ k+m\ mod\ k\geq k} \varphi(k)\ mod\ 9982 ...
- IDEA使用GsonFormat
安装GsonFormat插件 因为下载了最新版的idea2020.1.3发现GsonFormat在Idea商店不见了,所以去jetbrains官网下载jar包来安装插件https://plugins. ...
- Pytorch_第五篇_深度学习 (DeepLearning) 基础 [1]---监督学习与无监督学习
深度学习 (DeepLearning) 基础 [1]---监督学习与无监督学习 Introduce 学习了Pytorch基础之后,在利用Pytorch搭建各种神经网络模型解决问题之前,我们需要了解深度 ...