python dataframe删除某一列_怎样用Python进行数据分析
本文总结了猴子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进行数据分析相关推荐
- python dataframe索引转成列_如何将 Pandas DataFrame 的索引转换为列
我们将介绍将 Pandas DataFrame 的索引转换为列的各种方法,例如 df.index,带有 rename_axis 的 reset_index 来重命名索引,以及 set_index. 我 ...
- Python DataFrame删除某一列中包含的特定元素所在的行
如图,想去除status_working一列中值为18 的行,则可以利用下面这条语句,data为待清洗数据,data1为清洗后的新数据.
- python数据框添加新列_如何在Python中将新列添加到现有数据框?
数据框是一种二维数据结构,其中数据以表格格式存储,以行和列的形式. 它可以可视化为SQL数据表或excel工作表表示形式.可以使用以下构造函数创建它-pd.Dataframe(data, index, ...
- python Dataframe 根据某一列的值来删除多行
python Dataframe 根据某一列的值来删除多行 在Dataframe中,有的时候想根据某一列值来删除. 方法一:你可以做负isin()索引: In [57]: df Out[57]:a b ...
- python dataframe删除指定行_pandas.DataFrame删除/选取含有特定数值的行或列
pandas.DataFrame删除/选取含有特定数值的行或列 发布时间:2018-06-20 09:13, 浏览次数:9726 , 标签: pandas DataFrame 1.删除/选取某列含有特 ...
- python dataframe删除重复行_详解pandas使用drop_duplicates去除DataFrame重复项参数
Pandas之drop_duplicates:去除重复项 方法 DataFrame.drop_duplicates(subset=None, keep='first', inplace=False) ...
- python dataframe的某一列变为list_Python数据分析系列文章之Pandas(上)
本篇是[机器学习与数据挖掘]头条号原创首发Python数据分析系列文章的第三篇 Python数据分析系列文章之Python基础篇 Python数据分析系列文章之Numpy Python数据分析系列文章 ...
- openpyxl删除添加excel列_Python | 如何使用Python操作Excel(二)
0 前言 在阅读本文之前,请确保您已满足或可能满足一下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您的电脑已经安装好Python且pip可用. 请确保您已经读过 ...
- python删除excel第一行_如何用 Python 清洗数据?
林骥的第 38 篇文章 0. 序言在做数据分析之前,我们首先要明确数据分析的目标,然后应用数据分析的思维,对目标进行细分,再采取相应的行动.我们可以把数据分析细分为以下 8 个步骤:(1)读取(2)清 ...
最新文章
- 【oracle】dblink创建
- kafka:一文读懂消费者背后的那点猫腻
- SVM 透彻理解与分析
- P3375 【模板】KMP字符串匹配
- EasyUI学习总结(二)——easyloader分析与使用
- 未来已来!医院数字化转型为“看病难”画上“休止符”
- mayaa的一些代码
- layUI使用table.reload时出现了两次请求问题
- 27. Minimize casting
- 传奇修改map地图教程_传奇gm如何增加或者修改服务器中的地图
- 使用java实现MD5码算法
- Chrome扩展 - 百度识图
- sinc函数原型滤波器窗口matlab,sinc函数
- 免费公网动态IP方案
- Markdown字体,字号,颜色和背景色设置
- matlab怎么对比音频文件,音频文件导入matlab
- Java多线程系列--【JUC锁04】-公平锁(二)
- GRBL四:GRBL框架解析(转载)
- 自适应控制---模型参考自适应控制(一)基于局部参数最优化的设计方法(MIT方案)
- python123《python语言程序设计》程序设计题第一周第二周第三周第四周第五周
热门文章
- apache hive 使用概述
- C# Dev控件中的 GridControl 双击行事件
- 浅析数据库case when 用法
- reactjs生命周期:setState流程 shouldComponentUpdate componentWillUpdate render componentDidUpdate
- git初始化及关联远程仓库命令
- K8S部署工具:KubeOperator系统设置
- Linux xsync分发脚本完整内容
- yum groupinstall安装一组软件使用示例
- JavaFX快速入门完整代码:点击按钮显示当前系统时间示例
- linux根据端口查pid、根据pid查端口、根据pid查服务路径