数据分析9个优雅小技巧(测试代码+保姆级api例程),让你的代码更加python,代码优雅简洁。
有打包好的py文件下载使用,可以拿来即用,当做教学小案例使用。
多种用法只是简单介绍核心基础的功能。
CSDN资源打包下载地址:
https://download.csdn.net/download/u011027547/75277529
欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中
假设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=[参数1**3+1 for 参数1 in 参数]
简洁的行内for循环列表写法
x = [1,2,3,4]
y = [item**3+1 for item in x]
print(y)#[2, 9, 28, 65]
Lambda表达式用于在Python中创建小型,一次性或是匿名函数对象。
def_name=lambda arguments: expression
下图就一行Lambda定义了一个def_y用于计算y=x*2
def_y = lambda x: x * 2
print(def_y(1011))#2022
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
y=list(map(lambda var: var+1, x))
y=list(map(参数1, 参数2))
不加上转化成list,得到的是map对象
x = [1, 2, 3, 4, 5]
y = map(lambda var: var+1, x)
print(y)#
结合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函数可以筛选一个筛选函数和一个序列,将筛选函数依次作用于每一个筛选序列的元素,返回符合要求的筛选值。
y = list(filter(lambda i: i % 2 ==1, x))
y = list(filter(参数1, 参数2))
根据lambda 指定的规则,我们筛选了x中的所有奇数
x = [1, 2, 3, 4, 5]
y = list(filter(lambda i: i % 2 ==1, x))
print(y)#[1, 3, 5]
Arange返回给定步长的等差列表。它的三个参数start、stop、step分别表示起始值,结束值和步长, 请注意,stop点是一个“截止”值,因此它不会包含在数组输出中。
y=np.arange(3, 11, 2)
y=np.arange(start, stop, step)
左闭右开原则,y=2n+3 ,y<11
import numpy as np
y=np.arange(3, 11, 2)
print(y)#[3 5 7 9] 不包括11
Linspace和Arrange类似但本质不同。Linspace以指定数目均匀分割区间。所以给定区间start和end,以及等分分割点数目num,linspace将返回一个NumPy数组。这对绘图时数据可视化和声明坐标轴特别有用。
y=np.linspace(1, 100, 100)
y=np.linspace(start, stop, num)
假设我们要1-100,划分100项
import numpy as np
y=np.linspace(1, 100, 100)
print(y)
Axis表示轴。
轴是用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。
axis=1
axis=0
使用0值表示沿着每一列或行标签\索引值向下执行方法
使用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=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))
Apply将一个函数应用于指定轴上的每一个元素。使用Apply,可以将DataFrame列(是一个Series)的值进行格式设置和操作。你就把这个想成pd的map映射。
df[‘B’]=df[‘B’].apply(lambda x: x ** 2)
df[‘B’]=参数1.apply(参数2)
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
格式化输出需要的内容,便于进行数据分析。
pd.pivot_table(df,index=[“A”],values=[‘C’])
pd.pivot_table(df,index=参数1 ,values=参数2)
根据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例程)】
【更多内容敬请期待】