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])

#总结:其实数据的合并就是将所有数据存放到一个列表/集合框架里面。去操作数据
数据合并的核心思想 :将大数据划分为小元素—小元素划分为值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值