一直想把excel和python关联起来,加深学习pandas的印象,正好在知乎上找到@天天 提到的的《对比excel,轻松学习python数据分析》这本书,紧接着又搜到了苏克1900:像 Excel 一样使用 python 进行数据分析 这篇专栏文章,文章写得很全,遂在jupyte notebook上重写了一遍里面的代码,以供对照学习。按照书中目录,总共分为如下部分:

一、生成数据表

import 

二、数据表检查

#查看数据表的维度,对应excel CTRL+向下 CTRL+向右
df.shape
(6, 6)
# 数据表信息
df.info()
# 查看数据格式,Excel中通过选中单元格并查看开始菜单中的数值类型来判断数据的格式
df.dtypes
# 查看空值,对应excel CTRL+G定位空值
df.isnull()
# 查看唯一值,Excel 中查看唯一值的方法是使用“条件格式”对唯一值进行颜色标记
df['city'].unique()
# 查看数据表数值
df.values
# 查看列名称
df.columns
# 查看前10行数据
df.head(10)
# 查看后10行数据
df.tail(10)

三、数据表清洗

# 处理空值(删除或填充),对应excel查找和替换——删除数据表中含有空值的行
df.dropna(how="any")
#使用数字 0 填充数据表中空值
df.fillna(value=0)
#使用均值填充数据表中空值
df['price']=df['price'].fillna(df['price'].mean())
# 清理空格,清除city 字段中的字符空格
df['city']=df['city'].map(str.strip)
# 大小写转换
df['city']=df['city'].str.lower()
# 更改数据格式,Excel 中通过“设置单元格格式”功能可以修改数据格式
df['price'].astype('int')
# 更改列名称
df.rename(columns={'category': 'category-size'})
# 删除重复值,Excel 的数据目录下有“删除重复项”的功能
df['city'].drop_duplicates()
df['city'].drop_duplicates(keep='last')#保留最后一个重复值
# 数值修改及替换,Excel 中使用“查找和替换”功能就可以实现数值的替换
df['city'].replace('sh','shanghai')

四、数据预处理

# 数据表合并
#先创建 df1 数据表
df1=pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006,1007,1008],
"gender":['male','female','male','female','male','female','male','female'],
"pay":['Y','N','Y','Y','N','Y','N','Y',],
"m-point":[10,12,20,40,40,40,30,20]})
#数据表匹配合并,inner 模式, 在 Excel 中没有直接完成数据表合并的功能,可以通过 VLOOKUP 函数分步实现
df_inner=pd.merge(df,df1,how="inner")
df_inner
#其他数据表匹配模式
df_left=pd.merge(df,df1,how='left')
df_right=pd.merge(df,df1,how='right')
df_outer=pd.merge(df,df1,how='outer')
df_outer
# 设置索引列
df_inner.set_index('id')
# 排序(按索引,按数值),Excel 中可以通过数据目录下的排序按钮直接对数据表进行排序
df_inner.sort_index()
df_inner.sort_values(by=['age']) #按列排序需要增加by 参数
# 数据分组,Excel 中可以通过 VLOOKUP 函数进行近似匹配来完成对数值的分组,或者使用“数据透视表”来完成分组
df_inner['group']=np.where(df_inner['price']>3000,'high','low')#有点类似excel的if函数
df_inner
#对复合多个条件的数据进行分组标记
df_inner.loc[(df['city']=='beijing')&(df['price']>4000),'sigh']=1
df_inner
# 数据分列 Excel 中的数据目录下提供“分列”功能
#对 category 字段的值依次进行分列,并创建数据表,索引值为 df_inner 的索引列,列名称为 category 和 size
split=pd.DataFrame((x.split('-') for x in df['category']),index=df_inner.index,columns=['category','size'])
#将完成分列后的数据表与原 df_inner 数据表进行匹配
pd.merge(df_inner,split,right_index=True,left_index=True)  #right_index和left_index相当于唯一字段

五、数据提取

# 按标签提取(loc), Loc 函数按数据表的索引标签进行提取,iloc,ix现在用的少,暂时不提及
# 按索引标签提取单行的数值
df_inner.loc[3]
#按索引提取区域行数值
df_inner.loc[0:5]
#重设索引
df_inner.reset_index()
#设置日期为索引
df_inner.set_index('date')
# 提取 4 日之前的所有数据
df_inner.loc[:"2013-01-04"]
# 按条件提取(区域和条件值),使用 isin 函数对 city 中的值是否为 beijing 进行判断。
df_inner['city'].isin(['beijing'])#返回布尔值
df_inner.loc[df_inner['city'].isin(['beijing'])]#返回布尔值为True的值
# 数值提取还可以完成类似数据分列的工作,从合并的数值中提取出制定的数值。
category=df_inner['category']
pd.DataFrame(category.str[:3])  #提取前三个字符,并生成数据表

六、数据筛选

# 使用与,或,非三个条件配合大于,小于和等于对数据进行筛选,并进行计数和求和。与 excel 中的筛选功能和 countifs 和 sumifs 功能相似# 按条件筛选(与&,或|,非!=),Excel 数据目录下提供了“筛选”功能,用于对数据表按不同的条件进行筛选。
# 使用“与”条件进行筛选,条件是年龄大于 25 岁,并且城市为 beijing
df_inner.loc[(df_inner['age']>25)&(df_inner['city']=='beijing')]
# 使用“或”条件进行筛选,年龄大于 25 岁或城市为 beijing。筛选后有 6 条数据符合要求。
df_inner.loc[(df_inner['age']>25) | (df_inner['city']=='beijing')]
#使用“非”条件进行筛选,城市不等于 beijing。将筛选结果按 id 列进行排序(sort函数只能对列表使用,报错)
df_inner.loc[(df_inner['age'] > 25) | (df_inner['city'] != 'beijing'), ['id','city','age','category','gender']].sort_values(by=['age'])
# 在前面的代码后增加 price 字段以及 sum 函数,按筛选后的结果将 price 字段值进行求和,相当于 excel 中 sumifs 的功能。
df_inner.loc[(df_inner['age'] > 25) | (df_inner['city'] == 'beijing'),['id','city','age','category','gender','price']].sort_values(by=['age']).price.sum()
# 还有一种筛选的方式是用 query 函数
df_inner.query('city==["beijing","shanghai"]')#单引号里面要用双引号,否则会报错
#对筛选后的结果按 price 进行求和
df_inner.query('city==["beijing","shanghai"]').price.sum()

七、数据汇总

# Excel 中使用分类汇总和数据透视可以按特定维度对数据进行汇总,python 中使用的主要函数是 groupby 和 pivot_table# 分类汇总,对所有列进行计数汇总
df_inner.groupby('city').count()
pd.crosstab(df_inner['city'],df_inner['age'])#使用crosstab可以实现单列计数汇总
# 对特定的 ID 列进行计数汇总
df_inner.groupby('city')['id'].count()
#对两个字段进行汇总计数
df_inner.groupby(['city','size'])['id'].count()
# 除了计数和求和外,还可以对汇总后的数据同时按多个维度进行计算 /按城市对 price 字段进行汇总,并分别计算 price 的数量,总金额和平均金额
df_inner.groupby('city')['price'].agg([len,np.sum,np.mean])#len这里代表的是列表中的项目个数,非字符串的长度# 数据透视,Excel 中的插入目录下提供“数据透视表”功能对数据表按特定维度进行汇总
# 设定 city 为行字段,size 为列字段,price 为值字段。分别计算 price 的数量和金额并且按行与列进行汇总。
pd.pivot_table(df_inner,index=['city'],columns=['size'],values=['price'],aggfunc=[len,np.sum],fill_value=0,margins=True)#margins相当于行列汇总

八、数据统计

# 主要介绍数据采样,标准差,协方差和相关系数的使用方法
# 数据采样,Excel的数据分析功能中提供了数据抽样的功能,Python 通过 sample 函数完成数据采样
#简单的数据采样
df_inner.sample(n=3)
#手动设置采样权重
weights=[0,0,0,0,0.5,0.5]
df_inner.sample(n=2,weights=weights)
# Sample 函数中还有一个参数 replace,用来设置采样后是否放回
#采样后不放回
df_inner.sample(n=6, replace=False)
#采样后放回,'replace'就是重复的意思。即可以重复对元素进行抽样,也就是所谓的有放回抽样
df_inner.sample(n=6, replace=True)
# 描述统计,Excel 中的数据分析中提供了描述统计的功能。Python 中可以通过 Describe 对数据进行描述统计
df_inner.describe()
#数据表描述性统计
df_inner.describe().round(2).T #round设置小数点后位数,T代表转置
# 标准差 Python 中的 Std 函数用来接算特定数据列的标准差
df_inner['price'].std()
# 协方差,python 中通过 cov 函数计算两个字段或数据表中各字段间的协方差
df_inner['price'].cov(df_inner['m-point'])
# 相关分析,python 中通过 corr 函数完成相关分析的操作,并返回相关系数
df_inner['price'].corr(df_inner['m-point'])
#数据表相关性分析
df_inner.corr()

excel两列数据对比找不同_对比excel,轻松学习python数据分析相关推荐

  1. excel两列乱序姓名如何一一对应 excel 两列数据自动配对

    excel两列乱序姓名如何一一对应?Excel是非常好用的数据表格处理软件,能够帮助用户快速的处理复杂的数据,而excel中有很多实用的功能,需要我们合理使用.有时需要将两个名单中的数据自动对应,自己 ...

  2. python对excel两列求和写入另一列_python读取excel指定列数据并写入到新的excel方法...

    如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...

  3. python 在excel指定列添加数据_python读取excel指定列数据并写入到新的excel方法

    如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...

  4. python excel写入一列_python读取excel指定列数据并写入到新的excel方法

    如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...

  5. 『对比Excel,轻松学习Python数据分析』新书发布

    之前在公众号提过,我写了一本书,现在这本书终于面世了,这本书就是『对比Excel,轻松学习Python数据分析』,这本书是写什么的,以及这本书怎么写的,相信大家通过书名就能了解一二,但还是有必要专门写 ...

  6. python和excel的区别-对比Excel,轻松学习Python数据分析

    阅读权限50威望2 级论坛币2119 个学术水平357 点热心指数383 点信用等级313 点经验103301 点帖子917精华在线时间8677 小时注册时间2012-3-28最后登录2020-10- ...

  7. 好书推荐:《对比Excel,轻松学习Python数据分析》

    之前就一直有打算出一个结合Excel的Python数据分析的教程,刚好张俊红同学就出了书籍,后面写相关文章又多了一本好书.我首先说说我的看法,为什么要和Excel做结合了. Excel大家都熟悉,结合 ...

  8. 学python处理数据_如何轻松学习Python数据分析?

    原标题:如何轻松学习Python数据分析? 今天这篇文章来聊聊如何轻松学习『Python数据分析』,我会以一个数据分析师的角度去聊聊做数据分析到底有没有必要学习编程.学习Python,如果有必要,又该 ...

  9. python对比excel两列数据_python 对比excel表格数据表-python实现两个excel表列数据对比若源表与目标表存......

    在数据分析方面,比起python,excel的局限性在哪 data3 = pandas.merge(data1, data2, on=['名称'], how='inner') inner:内连接,取交 ...

  10. c#读取excel两列数据并绘制xy曲线_EXCEL绘制三Y轴图表

    在日常工作中,经常会使用EXCEL进行数据的处理与分析,并绘制一些常用的数据可视化图表,柱状图.散点图.曲线图等啥的,总体来说,Excel的数据可视化做的还是非常优秀的,可以非常方便的绘制常用的图表, ...

最新文章

  1. 区块链4.0DexChain是什么?
  2. Python进阶8——字典与散列表,字符串编解码
  3. uploadify控制 上传图片到百度云存储
  4. TcpClient和TcpListener 类的使用-编写一个点对点聊天工具(初级入门篇)
  5. eclipse linux环境下编译器的指定设置
  6. 指标搭建篇:如何搭建指标体系?——以公众号实战为例
  7. html怎样添加css样式,html添加css样式的方法
  8. Snowflake核心技术解读系列——架构设计
  9. matlab cell转数组_MATLAB批量修改文件名
  10. 如何将Springboot项目成功部署到linux服务器上?
  11. python创建虚拟环境报错typeerror_解决Python中报错TypeError: must be str, not bytes问题
  12. 数据库系统工程师5天修炼_程序员逆袭之路,5年IT人生从电脑装机到技术大神,人生不认输...
  13. Python 机器学习 利用sklearn构建决策树的实现 2
  14. 有关尉迟方兄遇到的面试题。
  15. DataTable 转换 DataSet
  16. Word中 Visio 图片到 LaTeX PDF
  17. 摄影测量学——空间后方交会
  18. L1-025__032
  19. 如何才能实现文字转语音播放?只要这三个步骤就能快速搞定!
  20. CDA I级学习 - CDA I级考试大纲

热门文章

  1. matlab 无刷电机,无刷直流电机MATLAB仿真模型
  2. Linux中GoogleChrome谷歌浏览器安装好了打不开怎么办?
  3. python123随机密码生成器_一个随机密码生成器
  4. 站群服务器找11火星软件
  5. 【CSS3盒子模型新样式】boder-box
  6. 编码:隐匿在计算机软硬件背后的语言
  7. html页面字体缩小模糊怎么解决,ps字体模糊怎么变清晰 设置一下字体大小,是否一样...
  8. Python for循环倒序遍历列表
  9. 求出数组最大值的方法
  10. selenium网易云登录定位不成功的问题