python数据分析:数据拆分,数据合并,数据筛选
#基于Python的数据分析
#1:为什么要进行数据分析
#简答:人工智能、大数据等数据的采集需要数据----数据通过Python分析
# 而来------进行数据的清洗操作-----建立数据模型Model------生成一个目标数据
#-----通过目标数据----预测未来----得到结果
#:2 企业数据存在的形成
#(1):存在于 “文件 ” 例如:excel word csv txt…
# (2):数据库 例如:mysql Oracle DB2 SQLserver…
#:3:数据解析 之 read_table read_excel
(1):在数据分析里面分析读取文本数据用 :
from pandas import read_table
read_table —也可以快速的读取大数据、海量数据、
人工智能的数据集
from pandas import read_excel
read_excel----是指定读取excel类型的数据。
传统的大数据开发就是在excel里面进行数据分析,所excel
方法可以处理大数据库~
(2):在以上2个方法里面。可以通过names属性给列起名称,方便数据的读取!
通过sep分隔数据!
(3):导入csv文件类型
i:处理数据的编码格式的方法
通过EditsPlus 或者 UE开发工具可以进行编码的切换!—开发天天使用。
思考?老师可以利用代码转码,----提问?如果有1000万 10亿条数据呢?
对于大数据的数据集不能利用转码的代码机制去直接转码,这样导致服务器、
数据等发生异常情况!----建议使用第三方工具直接操作数据集—面试问!
ii:
from pandas import read_csv
导入csv的文件需要通过 read_csv
思考?csv 和 word excel wps、txt等哪个处理数据集更好?
#CSv自身可以处理编码问题
pd8=read_csv(‘d:/pythondata01/1.csv’,encoding=‘utf-8’)
#总结: read_table /excel/csv 等,全部返回值是DataFrame类型
#:导包的/导模块的区别
from pandas import DataFrame#建议用什么module导入什么模块即可!
import pandas as pd#导入的是pnadas里面的所有module,Python解析器解析速度慢,在工作里面编码规范不要求这样大量写
iii: #导出数据
df.to_csv(‘d:/pythondata01/hello.csv’)
#思考?此代码除了将数据导出之外,还有什么特性?to_csv可以自动创建文件
还有什么特性?
df.to_csv(‘d:/pythondata01/mysql.csv’)
备注:to_csv 不仅仅可以自动创建数据文件,也可以将手动创建的文件,通过数据存放到文件里面!
建议大量使用!安全、数据维护简单!
(4):
df.to_csv('d:/pythondata01/hello.txt') #导出txt
#导出数据
df.to_csv('d:/pythondata01/hello.xls') #导出xls
df.to_csv('d:/pythondata01/hello.xlsx') #导出xlsx
#注意:(01)导出文件的格式不受限制,可以通过to_csv进行导出 不同文件类型!~~#(02)通过csv可以导出任意类型的文件。所以csv分析数据首选!
(5): #除去重复数据
df10=pd.read_csv('d:/pythondata01/data.csv')
newdfdata=df10.drop_duplicates()#此方法可以除去重复数据
print('新数据:',newdfdata)
(6):数据抽取 通过slice方法 ,但是数据抽取之前必须将数据转化为str
通过astype(str)-通过index抽取、----数据在列表里面
df11=read_csv(‘d:/pythondata01/datap.csv’)
#df[‘tel’] = df[‘tel’].astype(str);
#astype(str)表示的将数据转化为字符串 ----电话号码、身份证等都是字符串组成,而不是整数
#结果:还是需要将一个完整的数据进行拼接----拼接—自然是字符串操作!
df11['tel']=df11['tel'].astype(str)
#运营商
yys = df11['tel'].str.slice(0, 3);
#地区
areas = df11['tel'].str.slice(3, 7);
#号码段
nums = df11['tel'].str.slice(7, 11);
(7):数据字段拆分
#newDF = df['name'].str.split(' ', 1, True);
#参数说明 :df['name']指的是拆分哪个列名称 str.slpit表示按照字符串拆分# 所有的拆分都是按照字符串, (' ' 1,True) #1表示列数量 True=DataFrame False =返回值是Series ----根据情况而定
newdf12=df12['name'].str.split(' ',2,True) ---DataFrame
newdf13=df12['name'].str.split(' ',2,False) ---返回值Series
总结:newdf12=df12['name'].str.split(' ',2,True) --数据的拆分可读性较差
newdf13=df12['name'].str.split(' ',2,False) --数据拆分以后的可读性很好!
(8)
#筛选数据集里面的“具体数据名称” 如下代码:str.contains(‘台电’, na=False)
df13[df13.title.str.contains('台电', na=False)]#支持Python的所有科学/算术运算符
df[(df.comments>=1000) & (df.comments<=10000)]
df[(df.comments<=1000) & (df.comments>=10000)]
df[(df.comments/000) & (df.comments<=10000)]df14 = read_csv('d:/data.csv');
r=np.random.randint(0,100,4)
#例如:3大运营商 银行 很多项目利用这个功能#聊天 ix loc --按照切片思想操作
#r.loc[r,:];
df14=np.loc[r,:]
df14=np.ix[r,:] # 随机获取 (0,100),没有具体的行数。直到数据全部加载完即可print(df)
print(df15)
(9)#数据合并 -----通过关键字 concat
df = pandas.concat([df1, df2, df3])df15=read_csv('d:/hb/data1.csv')#data1表示的是一个数据文件
df16=read_csv('d:/hb/data2.csv')
df17=read_csv('d:/hb/data3.csv')#数据合并
df18=pandas.concat(['data1.csv','data2.csv','data3.csv'])#表示data1是一个列表的元素
df18=pandas.concat([df15,df16,df17])
df18=pd.concat([df15,df16,df17])
#总结:其实数据的合并就是将所有数据存放到一个列表/集合框架里面。去操作数据
数据合并的核心思想 :将大数据划分为小元素—小元素划分为值
from pandas import read_table
import numpy as np
import pandas as pd
from pandas import read_excel
from pandas import read_csv
from pandas import DataFrame
import pandas as pd
pd1=read_table('d:/pythondata01/2.txt')
#可以改动列名称 通过 names属性
pd2=read_table('d:/pythondata01/2.txt',names=['age','name'],sep=',')
pd3=read_table('d:/pythondata01/2.txt',names=['年龄','姓名'],sep=',')pd4=read_table('d:/pythondata01/1.csv')#csv数据可以读取吗?
pd5=read_excel('d:/pythondata01/3.xls')#不行报错误utf-8' codec can't decode byte 0xd0 in position 0: invalid
pd6=read_excel('d:/pythondata01/3.xlsx')
pd7=read_csv('d:/pythondata01/1.csv')
#CSv自身可以处理编码问题
pd8=read_csv('d:/pythondata01/1.csv',encoding='utf-8')#导入csv文件类型
#导出文件
#创建一个;列表数据 ,将列表数据导出文本类型、csv类型 、excel等类型.....
df=DataFrame({'name':['赵雅芝','许仙','法海','金莲','西门庆'],'age':[120,12,34,34,55]})
print('df的数据是:',df)
#导出数据
df.to_csv('d:/pythondata01/hello.csv')
#思考?此代码除了将数据导出之外,还有什么特性?to_csv可以自动创建文件还有什么特性?
df.to_csv('d:/pythondata01/mysql.csv',index=True) #导出数据
df.to_csv('d:/pythondata01/hello.txt') #导出txt
#导出数据
df.to_csv('d:/pythondata01/hello.xls',index=False) #导出xls
df.to_csv('d:/pythondata01/hello.docx') #导出xlsx
#除去重复数据
df10=pd.read_csv('d:/pythondata01/data.csv')
newdfdata=df10.drop_duplicates()#此方法可以除去重复数据 没有参数
print('新数据:',newdfdata)#
#处理数据的空格 ---一个空格=一个字符 ---2个字符--一个汉字 #假设:10000万条数据里面 。每一行有一个空格,计算:df01=DataFrame({'name':['赵雅 芝','许 仙',' 法海','金 莲','西门 庆'],'age':[120,12,34,34,55]})df10=pd.read_csv('d:/data01.csv')
newName = df10['name'].str.strip(); #.str表示的是将数据转化为字符串在去去除空格!
print(newName)
# 取消str.strip() 字符串2遍的空格 ! 为什么取消2遍空格?......... '刘 ..德华'---分析解析数据 ....... ‘.... 刘德华’#备注:......... 120 '刘 ..德华'---分析解析数据 读取2此以上的空格#....... ‘.... 刘德华 读取一次空格#数据截取
df11=read_csv('d:/pythondata01/datap.csv')
#df['tel'] = df['tel'].astype(str);
#astype(str)表示的将数据转化为字符串 ----电话号码、身份证等都是字符串组成,而不是整数#结果:还是需要将一个完整的数据进行拼接----拼接---自然是字符串操作!df11['tel']=df11['tel'].astype(str)
#运营商
yys = df11['tel'].str.slice(0, 3);
#地区
areas = df11['tel'].str.slice(3, 7);
#号码段
nums = df11['tel'].str.slice(7, 11);#:启发 假设大家 连接mysql oracle 操作?下午
from pandas import Series;
from pandas import DataFrame;
from pandas import read_csv;
import pandas as pd
import numpy as np
import pandas df12 = read_csv('d:/data.csv');
#newDF = df['name'].str.split(' ', 1, True);
#参数说明 :df['name']指的是拆分哪个列名称 str.slpit表示按照字符串拆分# 所有的拆分都是按照字符串, (' ' 1,True) #1表示列数量 True=DataFrame False =返回值是Series ----根据情况而定
newdf12=df12['name'].str.split(' ',2,True)
newdf13=df12['name'].str.split(' ',2,False) #数据的抽取操作 ---其实就是对数据进行 + - 等运算。新添加了几个函数:例如:between....and ..... or and ....df13 = read_csv('d:/data.csv');
df13[df13.comments.between(1000, 10000)] df13[pandas.isnull(df.title)] #此代码isnull空值不能有
df13[pd.isnull(df.title)]
#筛选数据集里面的“具体数据名称” 如下代码:str.contains('台电', na=False)
df13[df13.title.str.contains('台电', na=False)]#支持Python的所有科学/算术运算符
df[(df.comments>=1000) & (df.comments<=10000)]
df[(df.comments<=1000) & (df.comments>=10000)]
df[(df.comments/000) & (df.comments<=10000)]df14 = read_csv('d:/data.csv');
r=np.random.randint(0,100,4)
#例如:3大运营商 银行 很多项目利用这个功能#聊天 ix loc --按照切片思想操作
#r.loc[r,:];
df14=np.loc[r,:]
df14=np.ix[r,:] # 随机获取 (0,100),没有具体的行数。直到数据全部加载完即可print(df)
print(df15)#数据合并 -----通过关键字 concat
df = pandas.concat([df1, df2, df3])df15=read_csv('d:/hb/data1.csv')#data1表示的是一个数据文件
df16=read_csv('d:/hb/data2.csv')
df17=read_csv('d:/hb/data3.csv')#数据合并
df18=pandas.concat(['data1.csv','data2.csv','data3.csv'])#表示data1是一个列表的元素
df18=pandas.concat([df15,df16,df17])
df18=pd.concat([df15,df16,df17])
#总结:其实数据的合并就是将所有数据存放到一个列表/集合框架里面。去操作数据
数据合并的核心思想 :将大数据划分为小元素—小元素划分为值
python数据分析:数据拆分,数据合并,数据筛选相关推荐
- Python数据分析:根据大众点评数据挑选店铺地址
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Python圈子 PS:如有需要Python学习资料的小伙伴可以加点 ...
- Python数据分析之Pandas读写外部数据文件
点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 阅读目录 1 引言 2 文本文件(txt.csv) 2.1 读取数据 2.2 写入数据 ...
- python数据分析工资_python3对拉勾数据进行可视化分析的方法详解
前言 上回说到我们如何把拉勾的数据抓取下来的,既然获取了数据,就别放着不动,把它拿出来分析一下,看看这些数据里面都包含了什么信息. 下面话不多说了,来一起看看详细的介绍吧 一.前期准备 由于上次抓的数 ...
- python数据分析培训内容可以_Python数据分析师
阶段一 学完后能达到什么水平? 数据分析师认知篇 说 明:0基础入学,5大进阶之路,8大课程阶段,35+课程,1000+学时, 18大行业经典案例,两大商业项目实战!人工智能是你的终极目标! 课程时长 ...
- 「Python数据分析系列」10.使用数据
来源 | Data Science from Scratch, Second Edition 作者 | Joel Grus 译者 | cloverErna 校对 | gongyouliu 编辑 | ...
- Cris 的 Python 数据分析笔记 05:Pandas 数据读取,索引,切片,计算,列整合,过滤,最值
Pandas 数据读取,索引,切片,计算,列整合,过滤,最值 文章目录 Pandas 数据读取,索引,切片,计算,列整合,过滤,最值 1. read_csv 函数 2. DataFrame 数据结构的 ...
- python数据分析要不要爬虫_数据分析师需要对爬虫掌握到什么程度?
数据分析师是可以学爬虫的,通过爬虫技术,可以快速获取自己想要的数据,辅助自己进行业务分析,丰富自己的数据来源. 爬虫的学习难度并非大家想象的这么高,他从原理上其实就是模拟人们打开链接(发起请求) -& ...
- python怎么筛选excel数据_懂Excel也能轻松入门Python数据分析包pandas(二):高级筛选(上)-excel筛选...
转发本文并私信我"python",即可获得Python资料以及各种心得(持续更新的) 系列文章: 前言 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理 ...
- 关于Python绘制柱状图等图形,以及数据拆分与合并详细讲解
本文主要讲解这四个大方面问题: 一.使用plot()方法绘制柱状图等其它图形 二.查看DataFrame的内存占用情况 三.concat()函数与append()方法 四.merge()方法与join ...
- python之数据拆分与合并
1.代码部分 import pandas as pd#设置列对齐 pd.set_option('display.unicode.ambiguous_as_wide',True) pd.set_opti ...
最新文章
- Javascript中的树结构
- Android 界面滑动实现---Scroller类 从源码和开发文档中学习(让你的布局动起来)...
- Querying an unbounded table ‘myhive.db1.datagen‘ in batch mode is not allowed
- 中原工学院c语言期末考试题,中原工学院软件学院 2010年C语言 试卷A
- java---Socket编程出现的异常种类
- JDK源码解析之 java.lang.Integer
- nodejs-ORM 框架 waterline和Sails
- 关于知云文献翻译出现乱码
- android完全关闭应用程序,安卓手机后台程序不能彻底关闭?试试这个强制关闭的功能!...
- 【Python 基础篇】Python代码 之 三目表达式总结
- vue项目px自动转rem适用于pc端
- tomcat之连接器
- 进阶级 - Git Hub 常用指南
- 单点故障解决方案介绍smart link/monitor link /stp
- 一个简单有效的兼容IE7浏览器的办法
- QML基础:锚anchors
- 高效 PyCharm 使用技巧
- 前端性能测试工具hiper介绍
- 决策树分类原理(一)26
- 【阿朱洞察】中国云计算市场未来3年展望