python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)


文章要点

  • 前言
  • (一)在pandas中对excel进行函数填充
    • 1.在excel中进行函数填充
    • 2.在pandas中实现函数填充
      • 2.1 列于列进行计算
      • 2.2 单元格与单元格进行计算
      • 2.3 部分数据计算
      • 2.4 列增值
        • 2.4.1 pandas中的apply函数
  • (二)排序以及多重排序
    • 1.在excel表格中进行操作
    • 2.在pandas中实现排序操作
  • (三)数据筛选
    • 1.在excel中进行数据筛选
    • 2.在pandas中实现数据筛选
  • 结语

作者简介:苏凉(专注于网络爬虫,数据分析)
博客主页:苏凉.py的博客
名言警句:海阔凭鱼跃,天高任鸟飞。
要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!
关注?点赞收藏

前言
上篇文章带着大家一起学习了在pandas中如何对excel表格进行创建和修改,还有一些基本的操作,接下来我们一起再深入的去了解pandas在excel中其他的一些有趣的操作吧!!
往期回顾:
1.python数据分析基础001 -matplotlib的基础绘图
2.python数据分析基础002 -使用matplotlib绘图(散点图,条形图,直方图)
3.python数据分析基础003 -numpy的使用(详解)
4.python数据分析基础004 -numpy读取数据以及切片,索引的使用
5.python数据分析基础005 -pandas详解_pandas入门这一篇就足够了
6.python数据分析基础006 -利用pandas带你玩转excel表格(上篇)
(一)在pandas中对excel进行函数填充 1.在excel中进行函数填充
实例:在excel中我们要计算出现价,需要用对应的单元格做计算,得出结果后向下填充!
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

2.在pandas中实现函数填充 2.1 列于列进行计算
在excel表格中,计算出得结果通常为单元格与单元格做计算,而在pandas中往往都是整列与整列进行计算。
import pandas as pdbook = pd.read_excel('./Book.xlsx')df = pd.DataFrame(book)# 1.列与列进行计算 now_price = df['原价'] * df['折扣'] df['现价']=now_priceprint(df)

结果:
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

2.2 单元格与单元格进行计算
若我们想要实现excel中的单元格与单元格进行计算,我们需要遍历索引,取到每个单元格内的值,再进行计算,这个方法与上述方法实现的效果相同,但增加了计算量。如没有特殊情况,不推荐此类方法!!
# 2.单元格和单元格进行计算 # # 对索引进行遍历 for i in df.index: df['现价'].at[i] = df['原价'].at[i] * df['折扣'].at[i]

结果与上述相同。
2.3 部分数据计算
若我们只想对其中的部分数据进行计算,则遍历部分单元格进行计算即可!
# 3.对部分单元格进行遍历 for i in range(5,11): df['现价'].at[i] = df['原价'].at[i] * df['折扣'].at[i]

结果:
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

2.4 列增值
2.4.1 pandas中的apply函数
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)
我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。
4.列增值 def add(x): return x+5 df['原价'] = df['原价'].apply(add)

另一种写法,可以以不用定义函数,当然定义函数要方便一点在哪里需要用到直接调用就可以了,另外一种方法为使用lambda表达式代替函数。
df['原价'] = df['原价'].apply(lambda x:x+5)

以上两种方法都可以的到同样的结果:
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

(二)排序以及多重排序
在excel表格中我们可以对数据进行从大到小或是从小到大排序,也可以对多列数据进行排序,那再pandas中我们要如何操作呢?接下来就让我们一起看看吧!
实例:我们要对该表格的价格进行从大到小排序,以及将不值且价格从大到小来进行排序
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

1.在excel表格中进行操作 python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

结果:
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

2.在pandas中实现排序操作
我们需要在pandas中实现上述的结果,则需要调用pandas中的sort_values函数
import pandas as pdlist = pd.read_excel('./count.xlsx')df = pd.DataFrame(list) df.sort_values(by=['Worthy','Price'],inplace=True,ascending=[True,False])print(df)

在此可以一次性加入多个参数进行排序,而不用另外设置,ascending的默认值为True(从小到大),在这里对两列的数据进行排序,ascending的值若不同时为True或False,则需要分开设置。
结果:
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

这样我们就实现了以上结果。
(三)数据筛选 1.在excel中进行数据筛选
在excel中通常我们需要筛选出一些我们需要的数据,那再pandas中如何实现呢?下面一起来看看吧
实例:筛选出成绩再85分以上包含85,且年龄再25岁以下的学生。
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

2.在pandas中实现数据筛选
同样这里也需要用到apply函数
import pandas as pddef age_25(a): return a<25 def score_85(b): return b>=85 and b <=100student = pd.read_excel('./Students.xlsx',index_col='ID') df = pd.DataFrame(student) fin = df.loc[df['Age'].apply(age_25)].loc[df['Score'].apply(score_85)] print(fin)

apply函数的另一种写法
fin = df.loc[df['Age'].apply(lambda x:x<25)].loc[df['Score'].apply(lambda y:y>=85 and y<=100)]

两种方法结果相同:
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

结语
【python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)】今天的内容就到这里啦,希望看到此文的小伙伴能有所收获,另外pandas在excel中还有很多操作需要探索,关注我,咱们下期再见!!
python|python数据分析基础007 -利用pandas带你玩转excel表格(中上篇)
文章图片

    推荐阅读