【Python】数据分析9个优雅小技巧(测试代码+保姆级api例程)合集

数据分析9个优雅小技巧(测试代码+保姆级api例程),让你的代码更加python,代码优雅简洁。
有打包好的py文件下载使用,可以拿来即用,当做教学小案例使用。
多种用法只是简单介绍核心基础的功能。
CSDN资源打包下载地址:

https://download.csdn.net/download/u011027547/75277529

欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中

行内List循环

假设y=x**3+1 下面是一般性求得列表y的通常做法

x = [1,2,3,4]
y = []
for item in x:
    y.append(item**3+1)
print(y)#[2, 9, 28, 65]

行内List循环API说明:

list=[参数1**3+1 for 参数1 in 参数]

  • 参数1 参数2可迭代对象的一个子项
  • 参数2 参数2是可迭代对象

行内List循环例程

简洁的行内for循环列表写法

x = [1,2,3,4]
y = [item**3+1 for item in x]
print(y)#[2, 9, 28, 65]

Lambda表达式

Lambda表达式用于在Python中创建小型,一次性或是匿名函数对象。

Lambda表达式API说明:

def_name=lambda arguments: expression

  • def_name Lambda函数的名字
  • arguments Lambda函数的参数
  • expression Lambda函数的函数体

Lambda表达式例程

下图就一行Lambda定义了一个def_y用于计算y=x*2

def_y = lambda x: x * 2
print(def_y(1011))#2022

map函数映射

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

map函数映射API说明:

y=list(map(lambda var: var+1, x))
y=list(map(参数1, 参数2))

  • 参数1 映射的规则函数
  • 参数2 需要映射的对象
  • 返回的是map类型的数据,通常需要再转化成list等其他格式,所以在最外面加上了list()

不加上转化成list,得到的是map对象

x = [1, 2, 3, 4, 5]
y = map(lambda var: var+1, x)
print(y)#<map object at 0x000002BEFFD8CE80> 

map函数映射例程

结合Lambda使用map大大简化代码。x当中的子项进行lambda定义的函数运算,得到一个list——只用一行代码实现。讲究!

x = [1, 2, 3, 4, 5]
y = list(map(lambda var: var+1, x))
print(y)#[2, 3, 4, 5, 6]

Filter函数筛选

filter函数可以筛选一个筛选函数和一个序列,将筛选函数依次作用于每一个筛选序列的元素,返回符合要求的筛选值。

Filter函数筛选API说明:

y = list(filter(lambda i: i % 2 ==1, x))
y = list(filter(参数1, 参数2))

  • 参数1 筛选的规则函数
  • 参数2 需要筛选的对象
  • 返回的是Filter类型的数据,通常需要再转化成list等其他格式,所以在最外面加上了list()

Filter函数筛选例程

根据lambda 指定的规则,我们筛选了x中的所有奇数

x = [1, 2, 3, 4, 5]
y = list(filter(lambda i: i % 2 ==1, x))
print(y)#[1, 3, 5]

Arange给定步长的等差列表

Arange返回给定步长的等差列表。它的三个参数start、stop、step分别表示起始值,结束值和步长, 请注意,stop点是一个“截止”值,因此它不会包含在数组输出中。

Arange给定步长的等差列表API说明:

y=np.arange(3, 11, 2)
y=np.arange(start, stop, step)

  • start 起始值
  • stop 结束值 左闭右开原则
  • step 步长

Arange给定步长的等差列表例程

左闭右开原则,y=2n+3 ,y<11

import numpy as np
y=np.arange(3, 11, 2)
print(y)#[3 5 7 9] 不包括11

Linspace给定区间的等差列表

Linspace和Arrange类似但本质不同。Linspace以指定数目均匀分割区间。所以给定区间start和end,以及等分分割点数目num,linspace将返回一个NumPy数组。这对绘图时数据可视化和声明坐标轴特别有用。

Linspace给定区间的等差列表API说明:

y=np.linspace(1, 100, 100)
y=np.linspace(start, stop, num)

  • start 起始值
  • stop 结束值 左闭右开原则
  • step 划分子项数

Linspace给定区间的等差列表例程

假设我们要1-100,划分100项

import numpy as np
y=np.linspace(1, 100, 100)
print(y)

Axis区别行列的属性

Axis表示轴。
轴是用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。

Axis区别行列的属性API说明:

axis=1
axis=0
使用0值表示沿着每一列或行标签\索引值向下执行方法
使用1值表示沿着每一行或者列标签模向执行对应的方法

Axis区别行列的属性例程

按行把每一行的数据求和

import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]],columns=['A','B','C'],index=['a','b','c'])
print("原始数据")
print(df)
print("按行把每一行的数据求和")
print(df.sum(axis=1))

按列把每一列的数据求和

import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]],columns=['A','B','C'],index=['a','b','c'])
print("原始数据")
print(df)
print("按列把每一列的数据求和")
print(df.sum(axis=0))

Pandas Apply批处理

Apply将一个函数应用于指定轴上的每一个元素。使用Apply,可以将DataFrame列(是一个Series)的值进行格式设置和操作。你就把这个想成pd的map映射。

Pandas Apply批处理API说明:

df[‘B’]=df[‘B’].apply(lambda x: x ** 2)
df[‘B’]=参数1.apply(参数2)

  • 参数1 需要筛选的对象
  • 参数2 筛选的规则函数
  • 返回的是Filter类型的数据,通常需要再转化成list等其他格式,所以在最外面加上了list()

Pandas Apply批处理例程

Apply批处理第df[‘B’]列的数据平方

import pandas as pd
import numpy as np
df = pd.DataFrame([[1, 2, 3]] *3,columns=['A','B','C'],index=['a','b','c'])
print("原始数据")
print(df)
#    A  B  C
# a  1  2  3
# b  1  2  3
# c  1  2  3

df['B']=df['B'].apply(lambda x: x ** 2)
print("Apply批处理第df['B']列的数据平方")
print(df)
#    A  B  C
# a  1  4  3
# b  1  4  3
# c  1  4  3

Pivot Tables数据透视表

格式化输出需要的内容,便于进行数据分析。

Pivot Tables数据透视表API说明:

pd.pivot_table(df,index=[“A”],values=[‘C’])
pd.pivot_table(df,index=参数1 ,values=参数2)

  • 参数1 作为列索引
  • 参数2 需要显示的数值
  • 返回的是Filter类型的数据,通常需要再转化成list等其他格式,所以在最外面加上了list()

Pivot Tables数据透视表例程

根据lambda 指定的规则,我们筛选了x中的所有奇数

import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]],columns=['A','B','C'],index=['a','b','c'])
print("原始数据")
print(df)
print("按照A为索引,数据显示C")
print(pd.pivot_table(df,index=["A"],values=['C']))

总结

大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2022 mzh

Crated:2022-1-10

欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中
【Python安装第三方库一行命令永久提高速度】
【数据分析9个优雅小技巧(测试代码+保姆级api例程)合集】
【行内List循环-数据分析9个优雅小技巧(1)(测试代码+api例程)】
【Lambda表达式-数据分析9个优雅小技巧(2)(测试代码+api例程)】
【map函数映射-数据分析9个优雅小技巧(3)(测试代码+api例程)】
【map函数映射-数据分析9个优雅小技巧(4)(测试代码+api例程)】
【Arange给定步长的等差列表-数据分析9个优雅小技巧(5)(测试代码+api例程)】
【Linspace给定区间的等差列表-数据分析9个优雅小技巧(6)(测试代码+api例程)】
【Axis区别行列的属性-数据分析9个优雅小技巧(7)(测试代码+api例程)】
【Pandas Apply批处理-数据分析9个优雅小技巧(8)(测试代码+api例程)】
【Pivot Tables数据透视表-数据分析9个优雅小技巧(9)(测试代码+api例程)】
【更多内容敬请期待】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值