本文总结了猴子Live课程:怎样用Python进行数据分析,主讲内容包括Numpy和Pandas。

一、一维数据分析

一维数据分析,可以使用Numpy中Array,也可以使用Pandas中的Series,Series的功能会更多些。

Numpy一维数组的使用:

Numpy一维数组与Python列表的区别?--Numpy具有统计功能、向量化计算,Numpy数组中的数据类型必须是一致的,Python列表可以存储不同的数据类型。

Pandas一维数组的使用:

Pandas的Series可以创建索引,可以使用describe获取描述性统计信息

Pandas的Series获取数据有两种方式,iloc根据元素位置获取值,loc根据索引获取值

Pandas - Series支持向量相加,可以使用+号和add,add支持缺失值填充

二、二维数据分析

Numpy中通过Array创建二维数组,Pandas中通过DataFrame创建二维数组,数据框DataFrame更加广泛。

Numpy二维数组:如何定义二维数组、3种获取元素的情况

Numpy数轴参数,指定按照某一行或者某一列进行计算

DataFrame二维数组:

DataFrame相对于Numpy二维数组的优势:

  • DataFrame每一列可以是不同的数据类型
  • DataFrame每一行每一列都有一个索引值,很容易存储常见的表格数据

DataFrame 的创建和使用,学会使用iloc按照位置查询数据,loc按照索引查询数据,通过列表查询某几列数据,通过切片查询数据,以及通过条件判断筛选数据。

DataFrame:数据集描述性统计信息

三、通过案例学习数据分析步骤

数据分析步骤:提出问题、理解数据、数据清洗、构建模型、数据可视化

提出问题:一切的数据分析都是为了解决我们工作或生活中的问题,明确的问题为我们后面的数据分析提供了一个大的目标。

理解数据:根据我们的问题采集数据,将数据导入到数据框中,查看数据集的信息,从整体上了解数据。

数据清洗:对数据进行清洗,很多数据并不符合我们的标准。

构建模型:简单的分析是得到某些业务的指标,复杂的分析需要用到机器学习的算法。

数据可视化:与他人交流自己的数据结果,最好的方式就是使用图表。

案例过程:

1. 提出问题:某医院销售数据,需要获取月均消费次数、月均消费金额、客单价、消费趋势

理解每个业务指标的含义,实际项目中,前期我们需要和业务人员一起讨论明确他们的需求,各个指标的计算公式

2. 理解数据

#1.读取Excel数据(统一按str读入,之后转换)
fileNameStr='./医院销售数据.xlsx'
xls=pd.ExcelFile(fileNameStr, dtype='object')
salesDf=xls.parse('Sheet1',dtype='object')
#2.打印前几行
salesDf.head()
#3.查看有多少行多少列
salesDf.shape()
#4.查看列的数据类型
salesDf.dtypes

3. 数据清洗

数据清洗步骤:

  • 选择子集
  • 列名重命名
  • 缺失数据处理
  • 数据类型转换
  • 数据排序
  • 异常值处理
#1.选择子集
subSalesDf=salesDf.loc[0:4,'购药时间':'销售数据']
#2.列名重命名
colNameDict=['购药时间':'销售时间']
subSalesDf.rename(columns=colNameDict,inplace=True)
#3.缺失数据处理,删除指定列中为空的行,
#how='any'在给定的任何一列中有缺失值就删除
subSalesDf.dropna(subset=['销售时间','社保卡号'],how='any']
#4.数据类型转换,字符串转化为数值
subSalesDf['销售数量']=subSalesDf['销售数量'].astype('float')
subSalesDf['应收金额']=subSalesDf['应收金额'].astype('float')
subSalesDf['实收金额']=subSalesDf['实收金额'].astype('float')
#处理日期,字符串分割split,定义一个分割日期的函数
'''
定义函数:分割销售时间,获取销售日期
输入:timeSereis销售时间这一列,是个Series数据类型
输出:分割后的时间,返回也是个Sereis数据类型
'''
def splitSaletime(timeSeries): timeList=[]for value in timeSeries:#分割字符串,获取销售日期dateStr=value.split('')[0]timeList.append(dateStr)#将列表转行为一维数据Series类型timeSeries=pd.Sereis(timeList)return timeSeries
#获取销售时间这一列,对字符串进行分割获取销售日期
timeSeries=subSalesDf.loc[:,'销售时间']
dateSeries=splitSaletime(timeSeries)
#修改销售时间这一列的值
subSalesDf.loc[:,'销售时间']=dateSeries
#字符串转日期
subSalesDf.loc[:,'销售时间']=pd.to_datetime(subSalesDf.loc[:,'销售时间'],format='%Y-%m-%d',errors='coerce')
#转化日期过程中不符合日期格式的数值会被转化为控制None,删除为空的行
subSalesDf.dropna(subset=['销售时间'],how='any']
#5.数据排序,按销售日期进行升序排序
subSalesDf=subSalesDf.sortvalues(by='销售时间',ascending=True)
#重命名行名(index)
subSalesDf=subSalesDf.reset_index(drop=True)
#6.异常值处理
#每一列的描述性统计信息
subSalesDf.describe()
#删除异常值:通过条件判断筛选出数据
#查询条件
querySeries=subSalesDf.loc[:,'销售数据']>0
#应用查询条件
subSalesDf=subSalesDf.loc[querySeries,:]

4. 构建模型

python dataframe删除某一列_怎样用Python进行数据分析相关推荐

  1. python dataframe索引转成列_如何将 Pandas DataFrame 的索引转换为列

    我们将介绍将 Pandas DataFrame 的索引转换为列的各种方法,例如 df.index,带有 rename_axis 的 reset_index 来重命名索引,以及 set_index. 我 ...

  2. Python DataFrame删除某一列中包含的特定元素所在的行

    如图,想去除status_working一列中值为18 的行,则可以利用下面这条语句,data为待清洗数据,data1为清洗后的新数据.

  3. python数据框添加新列_如何在Python中将新列添加到现有数据框?

    数据框是一种二维数据结构,其中数据以表格格式存储,以行和列的形式. 它可以可视化为SQL数据表或excel工作表表示形式.可以使用以下构造函数创建它-pd.Dataframe(data, index, ...

  4. python Dataframe 根据某一列的值来删除多行

    python Dataframe 根据某一列的值来删除多行 在Dataframe中,有的时候想根据某一列值来删除. 方法一:你可以做负isin()索引: In [57]: df Out[57]:a b ...

  5. python dataframe删除指定行_pandas.DataFrame删除/选取含有特定数值的行或列

    pandas.DataFrame删除/选取含有特定数值的行或列 发布时间:2018-06-20 09:13, 浏览次数:9726 , 标签: pandas DataFrame 1.删除/选取某列含有特 ...

  6. python dataframe删除重复行_详解pandas使用drop_duplicates去除DataFrame重复项参数

    Pandas之drop_duplicates:去除重复项 方法 DataFrame.drop_duplicates(subset=None, keep='first', inplace=False) ...

  7. python dataframe的某一列变为list_Python数据分析系列文章之Pandas(上)

    本篇是[机器学习与数据挖掘]头条号原创首发Python数据分析系列文章的第三篇 Python数据分析系列文章之Python基础篇 Python数据分析系列文章之Numpy Python数据分析系列文章 ...

  8. openpyxl删除添加excel列_Python | 如何使用Python操作Excel(二)

    0 前言 在阅读本文之前,请确保您已满足或可能满足一下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您的电脑已经安装好Python且pip可用. 请确保您已经读过 ...

  9. python删除excel第一行_如何用 Python 清洗数据?

    林骥的第 38 篇文章 0. 序言在做数据分析之前,我们首先要明确数据分析的目标,然后应用数据分析的思维,对目标进行细分,再采取相应的行动.我们可以把数据分析细分为以下 8 个步骤:(1)读取(2)清 ...

最新文章

  1. 【oracle】dblink创建
  2. kafka:一文读懂消费者背后的那点猫腻
  3. SVM 透彻理解与分析
  4. P3375 【模板】KMP字符串匹配
  5. EasyUI学习总结(二)——easyloader分析与使用
  6. 未来已来!医院数字化转型为“看病难”画上“休止符”
  7. mayaa的一些代码
  8. layUI使用table.reload时出现了两次请求问题
  9. 27. Minimize casting
  10. 传奇修改map地图教程_传奇gm如何增加或者修改服务器中的地图
  11. 使用java实现MD5码算法
  12. Chrome扩展 - 百度识图
  13. sinc函数原型滤波器窗口matlab,sinc函数
  14. 免费公网动态IP方案
  15. Markdown字体,字号,颜色和背景色设置
  16. matlab怎么对比音频文件,音频文件导入matlab
  17. Java多线程系列--【JUC锁04】-公平锁(二)
  18. GRBL四:GRBL框架解析(转载)
  19. 自适应控制---模型参考自适应控制(一)基于局部参数最优化的设计方法(MIT方案)
  20. python123《python语言程序设计》程序设计题第一周第二周第三周第四周第五周

热门文章

  1. apache hive 使用概述
  2. C# Dev控件中的 GridControl 双击行事件
  3. 浅析数据库case when 用法
  4. reactjs生命周期:setState流程 shouldComponentUpdate componentWillUpdate render componentDidUpdate
  5. git初始化及关联远程仓库命令
  6. K8S部署工具:KubeOperator系统设置
  7. Linux xsync分发脚本完整内容
  8. yum groupinstall安装一组软件使用示例
  9. JavaFX快速入门完整代码:点击按钮显示当前系统时间示例
  10. linux根据端口查pid、根据pid查端口、根据pid查服务路径