python学习——数据分析

目录:

  1.数据分析模块

  2.数据文件导入

  3.图形绘制

  4.读取数据并可视化分析

1.数据分析模块

import numpy as nn
#一维数组numpy.array([元素1,元素2....,元素n])
x = nn.array(['2','3','d','g'])
# print(x)

#创建二维数组格式numpy.array([[元素1],[元素2]....,[元素n]])
y = nn.array([[2,3,4],[4,3,4,],[34,4,2,]])
# print(y)

#排序sort()
# x.sort()
# print(x)
# y.sort()
# print(y)

#取最大值和最小值
# y1 = y.min()
# print(y1)

#切片:数组[起始下标:最终下表+1]
x1 = x[1:3]
x2 = x[:2]
x3 = x[1:]
print(x1,x2,x3)

import pandas as pda
# Series #indes 索引
# a = pda.Series([8,9,2,1])
b = pda.Series([8,9,2,1],index=['a','b','c','d'])
print(s)


c = pda.DataFrame([[5,6,4,2],[5,4,2,5],[6,2,5,74]])

指定列名
d = pda.DataFrame([[5,6,4,2],[5,4,2,5],[6,2,5,74]],columns=['a','b','c','d'])


e = pda.DataFrame({
    'a':2,
    'b':[6,4,7],
    'c':list(str(919))
})

head()调取头部数据,默认5行
d = pda.DataFrame([[5,6,4,2],[5,4,2,5],[6,2,5,74]],columns=['a','b','c','d'])
e = d.head(2)
print(e)
tail()调取尾部收据,默认5行
d = pda.DataFrame([[5,6,4,2],[5,4,2,5],[6,2,5,74]],columns=['a','b','c','d'])
f = d.tail(2)
print(f)
desctibe()统计数据基本情况count元素个数、mean平均数、std标准差、
min列中所有数据中最小值、百分数每一列的分位数、max列中最大值
d = pda.DataFrame([[5,6,4,2],[5,4,2,5],[6,2,5,74]],columns=['a','b','c','d'])
g = d.describe()
print(g)

数据转置(行列互换)
d = pda.DataFrame([[5,6,4,2],[5,4,2,5],[6,2,5,74]],columns=['a','b','c','d'])
d1 = d.T
print(d1)

2.数据文件导入

import pandas as pd

导入csv文件
i = pd.read_csv('文件路径')
# 按照某一列排序
i.sort_values(by='列名')

导入excel文件
j = pd.read_excel('C:/Users/BLX/Desktop/123.xls')
print(j)

导入mysql数据库中的数据
import pymysql
conn = pymysql.connect(host='127.0.0.1',user='root',passwd='root',db='hexun')
sql = 'select * from myhexun'#查询语句
k = pd.read_sql(sql,conn)

导入html数据
pd.read_html('网页源码路径')

导入文本数据
pd.read_table('路径')

3.图形绘制

扫描二维码关注公众号,回复: 7240685 查看本文章
import matplotlib.pylab as pyl
import numpy as npy

散点图/折线图plot
x = [1,2,3,4,8]
y = [5,7,2,1,5]
折线图
pyl.plot(x,y)#plot(x轴数据,y轴数据,展现形式(可有可无))
pyl.show()

散点图
pyl.plot(x,y,'o')
pyl.show()

颜色
'''
c-cyan-青色
r-red-红色
m-magenta-品红
g-green-绿色
b-blue-蓝色
y-yellow-黄色
k-black-黑色
w-white-白色
'''
pyl.plot(x,y,'oc')

线条样式
'''
-直线
--虚线
-.点直线
:细小虚线
'''
pyl.plot(x,y,'-.')

点的样式
'''
s方形
h六角形
H六角形
*星形
+加好形
x叉形
d菱形
D菱形
p五角形
'''
pyl.plot(x,y,'p')
pyl.show()

标题
pyl.plot(x,y)
x2 = [1,2,3,5,6,9]
y2 = [3,1,5,6,4,2]
pyl.plot(x2,y2)
pyl.title('show')#主标题
pyl.xlabel('ages')#x轴标题
pyl.ylabel('temp')#y轴标题
pyl.xlim(0,10)#x轴范围
pyl.ylim(0.10)#y轴范围
pyl.show()


随机数的生成
data = npy.random.random_integers(1,20,10) #(最小值,最大值,个数)生成10个1-20之间的随机数
data2 = npy.random.normal(5.0,2.0,10) #(平均数,西格玛,个数)正态分布随机数
正态分布随机数,参考网址:www.mamicode.com/info-detail-507676.html

直方图hist
data3 = npy.random.normal(10.0,1.0,1000)
pyl.hist(data3)
pyl.show()

data4 = npy.random.random_integers(1,25,100)
pyl.hist(data4)
pyl.show()

设置直方图的组距、轮廓
data4 = npy.random.random_integers(1,25,100)
sty = npy.arange(2,17,2)#(起始,结束,每条直方图取值间隔)
pyl.hist(data4,sty,histtype='stepfilled') #histtype内参数取消图形轮廓
pyl.show()

子图绘制:各区域内分别写内容
data4 = npy.random.random_integers(1,25,100)
# 区域1
pyl.subplot(2,2,1)# 拆分n行,拆分n列,当前绘制区域
x1 = [1,2,3,4,5]
y1 = [5,2,5,8,9]
pyl.plot(x1,y1)

区域2
pyl.subplot(2,2,2)
x2 = [1,2,3,4,5]
y2 = [5,2,5,8,9]
pyl.plot(x2,y2)

区域3
pyl.subplot(2,1,2)# 拆分为2行1列的第二个位置
x3 = [1,2,3,4,5,6,7,8]
y3 = [5,2,5,8,9,3,5,8]
pyl.plot(x3,y3)

pyl.show()

4.读取数据并可视化分析

import pandas as pd
import numpy as np
import matplotlib.pylab as mp

data = pd.read_csv('E:/python/123.csv')
# data.shape()#返回(行数,列数)
data2 = data.T
x1 = data2.values[1] # 取[第几行][第几列]的数据
y1 = data2.values[2]
mp.plot(x1,y1)
mp.show()

猜你喜欢

转载自www.cnblogs.com/bilx/p/11492765.html