数据清洗-Chap 5-dataframe操作

  • 5.1日期格式数据处理
  • 5.2高阶函数数据处理
  • 5.3字符串数据处理

5.1日期格式数据处理

1.Pandas中使用to_datetime()方法将文本格式转换为日期格式
2.dataframe数据类型如果为datetime64,可以使用dt方法取出年月日
3.对于时间差数据,可以使用timedelta函数将其转换为指定时间单位的数值
4.时间差数据,可以使用dt方法访问其常用属性

####1.Pandas中使用to_datetime()方法将文本格式转换为日期格式
import pandas as pd
import os
import numpy as np
os.chdir(r'C:\Users\qw\Desktop\data ana')#路径改为数据存放路径
df = pd.read_csv('name.csv',encoding = 'utf-8',dtype = {'user_id':str})
#假如发现'day'列数据为整数型——%Y%m%d,20091012的形式
df['buy_date'] = pd.to_datetime(df['day'].format='%Y%m%d',error='coerce')#error='coerce'用于防止报错
df.info()#'buy_date'列的数据类型被转换为datetime64格式,也叫时间戳格式
####2.dataframe数据类型如果为datetime64,可以使用dt方法取出年月日
df['buy_date'].dt.year#提取年
df['buy_date'].dt.month#提取月
df['buy_date'].dt.day#提取天
####3.对于时间差数据,可以使用timedelta函数将其转换为指定时间单位的数值
####4.时间差数据,可以使用dt方法访问其常用属性
##时间差数据
df['diff_day'] = pd.datetime.now() - df['buy_date']###'diff_day'是timedelta64数据
df['diff_day'].head(4)
df['diff_day'].dt.days#使用dt方法提取多少day
df['diff_day'].dt.seconds#seconds是把小时分钟秒加到一起转换为秒数
df['时间差'] = df['diff_day']/pd.Timedelta('1 D')#转化成xxxx.xx天
df['时间差'] = df['diff_day']/pd.Timedelta('1 M')#转化成xxxx.xx分钟
df['时间差'] = df['diff_day']/pd.Timedelta('1 S')#转化成xxxx.xx秒
df['时间差'].round(decimals = 3)#把科学计数法转换为3位小数的表示方法
df['时间差'].head(5)
##其他方法
df['diff_day'].astype('timedelta64[Y]')

5.2高阶函数数据处理

1.在dataframe中使用apply方法,调用自定义函数对数据进行处理
2.函数apply,axis =0表示对行进行操作,axis = 1表示对列进行操作
3.可以使用astype函数对数据进行转换
4.可以使用map函数进行数据转换

####
df2 = pd_read_csv('num.csv',dtype = str, encoding = 'utf-8')
df2.head(10)def f(x):if '0' in str(x):return '女'elif '1' in str(x):return '男'else:return '未知'df2['性别'] = df2['gender'].apply(f)df2[[ df2['gender']=='2']]####del df2['性别']df2['性别'] = df2['gender'].map({'0':'女','1':'男','2':'未知'})
####del df2['性别']df2['性别'] = df2['gender'].map(f)df2['user_id'].apply(lambda x: str(x).replace(x[1:3],'**'))df2['birthday'].apply(lambda x: x[0:4])#取第一位到第四位
####apply应用更加广泛一点
####而map函数主要是映射

5.3字符串数据处理

1.Pandas中提供了字符串的函数,但只能对字符型变量进行使用
2.通过str方法访问相关属性
3.可以使用字符串相关方法进行数据处理
4.常用方法

函数名称 说明
contains() 返回表示各str是否含有指定模式的字符串
replace() 替换字符串
lower() 返回字符串的副本,其中字母都转化为小写
upper() 返回字符串的副本,其中所有字母都转化为大写
split() 返回字符串中的单词列表
strip() 删除前导和后置空格
join() 返回一个字符串,该字符串是给定序列中所有字符串的连接
####转化
df1['价格'] = df1['Price'].str.strip('$')
df1['价格'] = df1['价格'].str.replace(',','')
df1['价格'].astype(int)
####分割
df1['Location'].str.split(',').str[0]#分割后提取第1个元素
df1['Location'].str.split(',').str[1]#分割后提取第2个元素
df1['Location'].str.split(',').str[2]#分割后提取第3个元素df1['Location'].str.len()#统计字符串长度,比如号码长度

数据清洗Chap5——数据转换相关推荐

  1. 《数据清洗》——数据转换课后作业

    6.3数据粒度的转换 业务系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据.一般情况下会将业务系统数据按照仓库粒度进行聚合,这个过程被称为数据粒度的转换. 一.数据粒度转 ...

  2. python数据清洗工具、方法、过程整理归纳(一、数据清洗之常用工具——numpy,pandas)

    文章目录 1 背景 2 常用工具 2.1 numpy 2.2 pandas 1 背景 数据清洗是整个数据分析过程的第一步,也是整个数据分析项目中最耗费时间的一步: 数据分析的过程决定了数据分析的准确性 ...

  3. 用Python进行机器学习(附代码、学习资源)

    作者:Tirthajyoti Sarkar 翻译:张逸 校对:冯羽 本文约3090字,建议阅读6分钟. 本文从非线性数据进行建模,带你用简便并且稳健的方法来快速实现使用Python进行机器学习. 使用 ...

  4. [转]商业智能在电子商务交易中6大应用分析

    1. 应用背景和现状 现代社会信息飞速增长,企业在决策方面变得更加困惑和复杂.商业智能(Business Intelligence,BI)由Howard Dresner提出,是对商业中信息进行搜集.分 ...

  5. 数据交互极速体验-KETTLE的上手指南

    Kettle是目前市场上最流行的开源ETL工具. ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程), 对于企业或行业应用,特别是对于我们公司来说,拥有大量的数 ...

  6. 统计学习基础:数据挖掘、推理和预测_数据挖掘——智能财务进阶之梯(含视频、PPT)...

    6月20日,由上海国家会计学院主办,用友.元年科技.中兴新云.金蝶集团.浪潮集团联合主办的"信息技术赋能会计融合创新"高峰论坛暨2020年影响中国会计人员的十大信息技术评选结果发布 ...

  7. 复旦大学肖仰华教授:知识图谱落地的基本原则与最佳实践

    肖仰华教授2.2万字长文为您深度剖析知识图谱落地的基本原则与最佳实践. 肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识工场实验室负责人. 此文内容取自肖仰华教授在华为.CCF等场合所做 ...

  8. kettle的基本介绍

    Kettle 主要内容: 一.ETL介绍 二.Kettle介绍 三.Java调用Kettle API 一.ETL介绍 1. ETL是什么? 1).ETL分别是"Extract".& ...

  9. kettle大于0的转换成1_第一期实训周:基于Python+MySQL+Kettle+R的某网站数据采集分析...

    ↓ 基于Python+MySQL+Kettle+R的 某网站数据采集分析 哈喽!各位学员们 咱们第一期课程就要开始了 下面划重点! 一 高校院系 齐鲁工业大学数学与统计学院应用统计系 二 实训日期 2 ...

  10. 肖仰华 | 知识图谱落地的基本原则与最佳实践

    本文转载在公众号:知识工场. 肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识工场实验室负责人. 此文内容取自肖仰华教授在华为.CCF等场合所做报告,完整内容见书籍<知识图谱:概念 ...

最新文章

  1. SCAU 07校赛 10317 Fans of Footbal Teams
  2. win10解决vc++6.0不兼容问题方法
  3. 软件项目管理0806:分包付款资料
  4. 经典mysql语句_经典MYSQL语句
  5. uclinux多线程应用-网络通信[转]
  6. ubuntu16.04 SVN的安装与使用
  7. 架构设计文档规范文档
  8. 商业模式匹配乃同质化产品竞争终极大杀器
  9. spidev 驱动 probe 获取 dts 节点参数
  10. scrapy-cluster scrapy集群建设
  11. 液压传动与气动技术【3】
  12. aidlearning开发python使用教程_极致安卓之—Aid Learning基于Jupyter开发Java和Python
  13. win2008 r2折腾php7.1记录
  14. Tomcat with muti instance
  15. C#理论 —— 文件操作、委托和事件
  16. 用C语言求两个数的最大公约数和最小公倍数
  17. js 动态修改iframe的src
  18. mac的rubywoo怎么读_MAC大热色号 RUBY WOO
  19. 2022深圳国际清洁技术与设备展览会
  20. python2和python3一些不同

热门文章

  1. 通过ROS控制真实机械臂(17) --- 视觉抓取之ORK实现三维物体识别
  2. iPhone如何截长图?iPhone长截图教程
  3. 网络安全实验4 SQL注入攻击
  4. 2019最新java实战项目资料
  5. mac使用之必备神器
  6. 麦咭萌app送智伴机器人_国内儿童陪伴机器人品牌盘点
  7. Altium Designer 元件封装库与3D模型大全
  8. php对接易宝支付实现真实交易
  9. 视频教程-网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】-网络技术
  10. 手机号归属地查询实例