python数据分析学习初探

python数据分析工具Jupyter notebook

Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。

安装jupyter notebook

朱皮特
安装Jupyter Notebook的前提是需要安装了Python(3.3版本及以上,或2.7版本)

pip3 install jupyter

如果按照超时可以参照如下进行换源安装完成。

• 国内镜像:
• 阿里云 http://mirrors.aliyun.com/pypi/simple/
• 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
• 豆瓣(douban) http://pypi.douban.com/simple/
• 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
• 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
• 修改源的方法
• pip install packagename -i link
• 举例如下:pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple

运行jupyter notebook

首先进入工作路径,后终端输入命令

jupyter notebook

pip install jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simple

运行命令后,自动打开网页在这里插入图片描述

jupyter notebook快捷方式

在这里插入图片描述

Matplotlib

Matplotlib是Python的绘图库,其中的pyplot包封装了很多画图的函数。Matplotlib.pyplot 包含一系列类似 MATLAB 中绘图函数的相关函数。

安装Matplotlib

pip3 install matplotlib

Matplotlib常用模块导入

import matplotlib.pyplot as plt

使用Mathplotlib

创建画布

fig = plt.figure(figsize=(20, 10),facecolor='snow')

子图的绘制subplot

ax1 = plt.subplot(2,3,1)   # 2*2 最多为6个图形 index=1 选择了第一个
ax3 = plt.subplot(2,3,1)
ax2 = plt.subplot(2,3,2)
ax3 = plt.subplot(2,3,3)
ax4 = plt.subplot(2,3,4)
ax3 = plt.subplot(2,3,5)
ax4 = plt.subplot(2,3,6)

子图绘制subplots散点图

fig,axs = plt.subplots(2,2,sharex=True,sharey=True,figsize=(14,8)) # 2*2 nrows子图的行数 ncols子图列数 sharex,sharey 共享x,y轴.
axs[0,0].scatter(range(5),range(5)) # [0,0]选中第一张图
axs[0,1].scatter(range(5),list(range(5))[::-1]) # [0,1] 选中第二张图

调整间距

fig,axs = plt.subplots(2,2,sharex=True,sharey=False,figsize=(16,8),facecolor='snow')

axs[0,0].scatter(range(1,10),range(1,10)) #绘制散点图
axs[0,1].plot(range(1,10),range(1,10))#绘制折线图
plt.subplots_adjust(wspace=0,hspace=0)#调整子图间距
plt.show()

绘制直方图

直方图绘制: hist(x,bins=None)函数 绘制以x为数值 bins为组数的直方图
组数=极差/组距,注意必须是整数

实例:
某地区连续50年中四月份平均气温数据如下: temp_li= [6.9,4.1,6.6,5.2,6.4,7.9,8.6,3.0,4.4,6.7,7.1,4.7,9.1,6.8,8.6,5.2,5.8,7.9,5.6,8.8,8.1,5.7,8.4,4.1,6.4,6.2,5.2,6.8,5.6,5.6,6.8,8.2,6.4,4.8,6.9,7.1,9.7,6.4,7.3,6.8,7.1,4.8,5.8,6.5,5.9,7.3,5.5,7.4,6.2,7.7] 根据以上数据,推断该地区四月份平均气温的分布类型。

from matplotlib import pyplot as plt
import random
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False   # 步骤二(解决坐标轴负数的负号显示问题)

temp_li= [6.9,4.1,6.6,5.2,6.4,7.9,8.6,3.0,4.4,6.7,7.1,4.7,9.1,6.8,8.6,5.2,5.8,7.9,5.6,8.8,8.1,5.7,8.4,4.1,6.4,6.2,5.2,6.8,5.6,5.6,6.8,8.2,6.4,4.8,6.9,7.1,9.7,6.4,7.3,6.8,7.1,4.8,5.8,6.5,5.9,7.3,5.5,7.4,6.2,7.7] 


differ = max(temp_li)-min(temp_li) #极差

g_distance = 1
g_num = round(differ/g_distance)# 注意组数必须为整数,不能为小数,所以此处四舍五入。默认为10
plt.xlabel('组数')
plt.ylabel('频数')
plt.title('直方图')
plt.hist(temp_li,g_num)

在这里插入图片描述

plt.xlabel('组数')
plt.ylabel('频率')
plt.title('直方图')
plt.hist(temp_li,g_num,density=True) #频率图 增加density
plt.show()

在这里插入图片描述

NUMPY与PANDAS初探

import json

'''
python操作json文件
1.把一个python类型数据直接写入json文件
json.dump(data1, open(‘xxx.json’, “w”));
2.直接从json文件中读取数据返回一个python对象
data3 = json.load(open(‘xxx.json’));
'''

dict_name = {"lxy":"win"}
print(dict_name)

# 上下文
with open('dict_file.txt','w',encoding='gbk') as f:
    json.dump(dict_name,f)


with open('dict_file.txt','r',encoding='gbk') as f:
    str_dict = json.load(f)
    print(str_dict)
    print(str_dict['lxy'])

import csv

with open('csv_demo.csv','w',encoding='gbk',newline="") as f:
    datewriter = csv.writer(f)
    #逐行写入
    datewriter.writerow(['name','age','address'])

    #多行写入
    datewriter.writerows([['小李',18,'北京'],['小张',28,'上海']])

with open('csv_demo.csv','r',encoding='gbk',newline="") as f:
    dateread = csv.reader ( f ) # 返回的是一个迭代器

    for date in dateread:
        print(date)


import pandas as pd
#pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/

data = pd.read_csv('csv_demo.csv',encoding='gbk')
data.to_csv('csv_demo1.csv,encoding='gbk')
print(data)

from openpyxl import Workbook

# pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/
wb = Workbook() #创建工作簿
ws = wb.active #激活第一个工作表

data = [
    ["name","age"],
    ["zhangsan","38"],
    ["lisi","40"],
    ["wangwu","60"]
]

#for row in data[0]:
for row in data:
    ws.append(row)

wb.save('demo4.xlsx')

#=====读取
from openpyxl import load_workbook

rb = load_workbook('demo4.xlsx')#打开工作簿

rs = rb.active #读取第一个工资表

#获取表里面的数值
# ws.rows # 生成器对象

for row in rs.rows:
    print('row = ',row)
    for cell in row:
        print('cell=',cell)
        print ( 'cell value=', cell.value )

# 用pandas读取excel

#data_ex = pd.read_excel('demo4.xlsx',sheet_name=0)
#print(data_ex)
#data_ex.to_excel('demo5.xlsx',index=False)

#long--type
import numpy as np

li = [1,2,3,4]
a1 = np.array(li)
print(type(a1))
print(a1)

a2 = np.array(range(1,5))
print(type(a2))
print(a2)

a3 = np.arange(1,5)
print(a3)

li1 = ["1",0.5,30]

li2 = ["2",0.5,30]

b = np.array(li2)
print(b)
print(b.dtype) #获取数据类型

li = [1,2,3,4,5]

#a = ''.join([str(x) for x in li])

#a=[str(x) for x in li]
#print(a)

# map
a1 = list(map(str,li))
print(a1)

#在创建的时候通过dtype指定数组类型
a2 = np.array(li,dtype="U")
print(a2)

a3 = a2.astype("U") #创建后修改类型,并没有改变原有的数值
print(a3)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Narutolxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值