python数据分析

我用的是Visual Studio Code,直接创建了.ipynb后缀的文件,开始使用jupyber

pandas库引用

import pandas as pd

两种基本的数据结构:Series和DataFrame

(一)Series

Series对象效率挺高的,比如能直接将两个列表中的内容相加还是蛮方便的嘛

77636ed8c30040fc83d3c31fa1d27ea2.png

引用的方法很多,在此只简单列举传入列表、字典、n维数组

(1)传入列表

pd.Series([],index=[]),默认索引从0开始

6316c87147b0470cae742cbe703b12f6.png

添加索引

30cd614950a247f28f882799b4dde75a.png

创建字典

393ccb1223e94bd0b7bcd18150aa0dce.png

传入n维数组

cea8237f73044cd5b31f18bb36916423.png

(二)DataFrame

DataFrame表格类型

传入字典pd.DataFrame({},columns=[],index=[]),行索引columns,列索引index

bceb5f04536c42d296303e26b767cdf1.png

传入n维数组pd.DataFrame(np.array(),columns=[],index=[])

46a22f43d03d427eadbe11996b2c8fd6.png

数据收集

读取csv文件

pd.read_csv(path, encoding='utf-8') 

数据清洗

1)查看基本情况

df.info()查看数据基本信息

2)处理缺失值

当各列的非空数据数量与总行数不同时,就可能存在缺失值

df.isna()查看缺失值,True存在,False不存在

df.dropna() 删除包含缺失值的整行数据

df.dropna(subset=[''])删除指定列中含有缺失值的行

3)处理重复值

df.duplicated()查找重复行,可以采用df[df.duplicated()]的方法显示得更加直观

df.drop_duplicates()删除重复出现的整行数据

4)处理异常值

df.describe() 显示数据的统计信息,返回count、mean、std、min、25%、50%、75%、max,分别代表频数统计、平均值、标准差、最小值、第一四分位数、中位数、第三四分位数以及最大值,e+n代表10的n次方

df[<df>]抽取数据,eg.df['人数'<10]表示抽取人数小于10的数据

数据处理

从日期中抽取月份信息

pd.to_datetime(arg,format)函数:将object数据类型转为dataetime数据类型,arg是要转换的数据,format是datetime的日期格式,eg“%Y-%m-%d”

获取这份数据的年、月、日的信息,可以通过 Series.dt.year、Series.dt.month 以及 Series.dt.day

b=pd.to_datetime(a['日期'],format='%Y-%m-%d')
month=b.dt.month

添加新列

df['colname'] = Series,colname是新的一列的名字

数据写入

df.to_csv(path,encoding=‘’,index=False/True),index=False取消写入行索引,index=True写入行索引

分组聚合

单层分组:df.groupby(by),by是谁根据谁分组,eg、df.groupby(‘班级’),将数据对班级分组,分为1班,2班等

聚合:df.groupby(by)[‘列索引’].mean(),eg、df.groupby(‘班级’)[‘成绩’].mean(),就是求各班成绩的平均值

常见聚合操作:

min()求最小值
max()求最大值
std()求标准差
mean()

求平均值

median()求中位数
sum()求总和
count()求数量
value_counts()求频数分布

多层分组聚合:df.groupby(['',''])[‘列索引’].mean()

针对多层分组聚合,可以用unstack()函数将series转换成dataframe表格样式,更加直观

数据可视化

绘制折线图:

单条折线图:s.plot(kind,figsize,title,use_index,xticks,yticks,rot,fontsize)

多条折线图:df.plot(kind,figsize,title,use_index,xticks,yticks,rot,fontsize)

kind设置图表类型
figsize设置图表大小(元组)
title图表标题
use_index是否要用行索引作为x轴的刻度值
xticks横坐标的值
yticks纵坐标的值
rot刻度值的偏转角度
fontsize刻度值的字体大小

kind=‘line’是折线图,kind=‘tie’是饼图,kind=‘bar’是柱状图

matplotlib库

引用

from matplotlib import pyplot as plt

matplotlib库常用绘图函数

生成画布:plt.figure(figsize=(,))

保存:plt.savefig(path)

绘制折线图:plt.plot(x,y,color),x横坐标,y纵坐标

绘制柱状图:plt.bar(x,height,color,alpha,width),x=s.index,height=y=s.value,alpha是透明度,width是宽度

添加标题:plt.title(label,fontsize)

设置坐标轴刻度字体大小:plt.xticks(fontsize)、plt.yticks(fontsize)

设置坐标轴标题:plt.xlabel(xlabel,fontsize)、plt.ylabel(ylabel,fontsize)

还可以添加其他参数,水平对齐ha——'left'、'right'、'center',垂直对齐va——'center'、 'top'、'bottom'、'baseline',更详细的字体参数用fontdict

设置图例:plt.legend(labels),labels表示图表名称,一般传入列表,用于一个图中同时画柱状图和折线图这种情况时指代两个表名

设置标签:plt.text( x,y,s,ha,va, fontsize),x、y表示标签的位置,s是标签内容

 ps:zip()函数,可以从 x、y 元素序列中依次取出元素,按照顺序进行一对一匹配

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值