python数据分析收获与⼼得_使⽤python进⾏数据分析
使⽤python进⾏数据清洗及可视化
今天第⼀次使⽤pandas和matplotlib处理数据,以下纪录⼀些使⽤⼼得:
1、⾸先第⼀步就是要导⼊⼀些使⽤包:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
要把csv或者excel⽂件读取出来:
pa = pd.read_csv('E:/练习数据/patient.csv')
这⾥需要注意,我们直接复制出来的⽂件路径格式⼀般都是 \ ,这⾥我们要转换成 / ;
2 、由于我的⽂件列数过多,所以在notebook中显⽰不完全,如果要显⽰所有列,那就需要在开头进⾏⼀些设置
pd.set_option('display.max_columns',None)
主要⽤到的就是set_option⽅法,具体⽤法可以参考其他⽂章;
3、之后就进⼊到了数据清理阶段:⾸先删除不需要的列:
pa.drop(['病⼈卡号','病⼈姓名','省份','城市','咨询医⽣','类型','type_message'], axis=1, inplace=True)
这⾥使⽤drop⽅法,参数⽅⾯axis默认为0,是删除⾏,置为1是删除列,inplace参数表⽰是否需要把处理之后的数据替换掉原来的数据;另外⼀种删除⽅法是删除连续的多列:
pa.lumns[8:30],axis=1,inplace=True)
这⾥使⽤了索引,表⽰删除第8到30列;
把⼏列拿出来求和,得到新的列在加⼊的表中,这种使⽤场景⽐如说计算每个学⽣各科的总分:
sum_columns = pa.iloc[:,8:30]deff(x):return x.sum()feiyong = sum_columns.apply(f,axis=1)pa['总费⽤'] = feiyong
这部分牵涉到的知识点:iloc的使⽤、apply函数的使⽤、还有如何增加⼀列新的数值到表中,算是稍
微复杂点的应⽤了;python怎么读取excel文件数据
数值的替换都可以⽤replace:
pa = pa.replace(['初诊','复诊'],[1,0])pa = pa.replace(['⾃然门诊'],['企划'])
更改列名要⽤到rename:
⾥⾯要传⼊columns和inplace作为参数;
还有⼀个重要的知识点就是把⼀列分成两列,再添加到表中:
bingzhong = pa.病种.str.split('-',expand=True)
pa = pa.join(bingzhong)
这⾥⽤到的是str.split,⾥⾯两个参数,第⼀个是使⽤什么符号来分裂,这个符号必须是每⼀个数据都包含的,之后要给两个新的列添加列名,之后使⽤join把新的Dataframe添加到原来的表中。
分组统计:
zhuzhuang = pa.groupby(by=['医院'])['总费⽤'].sum().sort_values(ascending=False)
cz1 = pa.groupby(by=['医院'])['初复诊','总费⽤'].sum() #统计两列
使⽤groupyby⾥⾯要传⼊by参数,后⾯可以做统计,然后排序,这个参数后来会成为Series中的index,如果要把得到的Series转化成Dataframe可以使⽤下⾯这个函数
cz1 = set_index() #把groupy之后⽣成的series变成dataframe
对某⼀列的值进⾏加减乘除运算:
cz1['总费⽤']=cz1['总费⽤']/10000
使⽤round设置保存⼏位⼩数:
cz1 = und({'总费⽤':0}) #对某⼀列保留⼏位⼩数
数据筛选:
cz2 = cz1[(cz1.初复诊>100)&(cz1.总费⽤>1)]
3、数据可视化
折线图
zhexian.plot(figsize=(12,6))icks(fontsize=10)plt.xlabel('Datatime')plt.ylabel('Money')plt.title('moneyof
datatime')plt.show()
直接使⽤.plot,默认就是折线图,figsize参数可以指定画出的图⽚⼤⼩,xticks主要设置坐标轴的显⽰,⽐如说字号,xlabel,ylabel,title分别设置标题;
柱状图
zhuzhuang.plot(kind='bar',figsize=(15,8))icks(rotation=45,fontsize=icks(fontsize=14)plt.show()
除了figsize参数之外还传进去⼀个kind表⽰图像的类型‘bar’表⽰柱状图,
散点图
fig, ax = plt.subplots()ax.scatter(cz2['初复诊'],cz2['总费⽤'])ax.set_xlabel('nums')ax.set_ylabel('money')ax.set_title('Hahahha Wocao')plt.show()
这⾥使⽤⼀个新的画图⽅法ax,散点图要传进去两列数值,来描述两列的关系,设置图名称的⽅式也和之前有所不同
箱线图
fig, ax = plt.subplots()ax.boxplot(cz2['总费⽤'])plt.show()
箱线图描述⼀列数据中,数据分布情况。
以上就是这部分的内容,后续再学习中继续补充。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。