python数据分析的8个重要的知识点

一、列表推导式
在写循环的时候,每次定义一堆列表很没有必要,python内置了一种名为列表推导式的方法,仅使用一行代码就能够解决。

下面这个例子,第一种是求每一个元素平方的的普通写法,
第二种是列表推导式的写法。

#普通写法
x = [1,2,3,4]
out = []
for item in x:
    out.append(item**2)
print(out)
#输出  [1,4,9,16]

#列表推导式写法
x = [1,2,3,4]
out = [item**2 for item in x]
print(out)
#输出  [1,4,9,16]

二、Lambda 函数

有些函数只要用几次就需要定义一个新函数,你是否对此感到厌烦呢?
Lambda函数可以解决这个问!Lambda函数通常被用来构建应用次数比较少的匿名函数,也就是构建一个不带名字的函数。

Lambda函数基本语法如下:

lambda argument : expression

普通函数能做的,Lambda 函数也是能做到的,只要它们能够写成一行。

double = lambda x : x*2
print(double(5))
#输出 10

三、Map 函数与 Filter 函数

掌握了Lambda函数,然后将Lambda函数和map,filter函数一起使用,威力巨大。
具体地说,map函数通过对列表中的每一个元素进行操作,将列表转换成一个新的列表。
下面这个例子中,map函数将每个元素乘以2,变成一个新的元素。注意这里的list函数只是简单地将输出结果转化为List类型。

# map
seq = [1,2,3,4,5]
result = list(map(lambda var: var*2, seq))
print(result)
#输出  [2,4,6,8,10]

Filter 函数类似于 map 函数,但是 filter 函数通过比较每一个元素是否为真从原始列表中抽取子集。

#Filter
seq = [1,2,3,4,5]
result = list(filter(lambda x: x>2, seq))
print(result)
# 输出  [3,4,5]

四、Arange 函数 和 Linspace 函数

快速创建简单的Numpy数组,只用arrange和linspace函数最适合不过了。
它们都有各自特定的功能,但在这里使用(不是使用范围)在于其产生的Numpy数组,对于数据科学通常更容易操作。
Arange函数,根据start和stop指定的范围以及step设定的步长,生成指定间隔的均匀间隔序列。
除了开始值start和结束值stop,还可根据需要定义步长step或数据类型。这里需要注意,结束值是一个[截止]值,所以不会包含在生成的数组中。

# np.arange(start,stop,step)
np.arange(3,7,2)
array([3,5])

Linspace函数与arange函数非常相似,但略有不同。它根据start和stop指定的范围以及num设定的个数,生成指定个数的均匀间隔序列。因此,给定一个开始值start和结束值stop,以及个数值num,linspace函数将在Numpy数组中均分这个范围,在在数据可视化和绘图时的轴的声明很有用。

# np.linspace(start,stop,num)
np.linspace(2.0,3.0,num=5)
array([2.0,2.25.2.5.2.75.3.0])

五、什么是轴 Axis
使用 Pandas 删除列或对 NumPy 矩阵元素求和时,你可能会遇到这个问题?
如果没有,那么之后也一定会遇到。
下面给出删除列的示例:

df.drop('Column A',axis=1)
df.drop('Row A',axis=0)

从上面的代码中可以推断出,对列操作需要将axis设置为1,对行操作需要设置为0,但这是为什么呢?

df.shape
(# of Rows, #of Columns)

查看Pandas中dataframe的shape属性会返回一个元组,其中第一个值表示行数,第二个值表示列数。想想python中的索引方法——行为0列为1,这与声明轴的方法非常相似。

六、Concat 函数、Merge 函数和 Join 函数

如果你熟悉SQL,那么这些函数方法可能会更容易理解。其实它们本质上都只是以一定的方式合并dataframe的方法。
Concat函数可以在下方或旁边合并一个或多个dataframe(取决于如何定义轴)

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
          keys=None, levels=None, names=None, verify_integrity=False,
          copy=True)

objs:Series,DataFrame或Panel对象的序列或映射。如果传递了dict,则排序的键将用作键参数,除非它被传递,在这种情况下,将选择值(见下文)。任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueError。
axis:{0,1,…},默认为0。沿着连接的轴。
join:{‘inner’,‘outer’},默认为“outer”。如何处理其他轴上的索引。outer为联合和inner为交集。
ignore_index:boolean,default False。如果为True,请不要使用并置轴上的索引值。结果轴将被标记为0,…,n-1。如果要连接其中并置轴没有有意义的索引信息的对象,这将非常有用。注意,其他轴上的索引值在连接中仍然受到尊重。
join_axes:Index对象列表。用于其他n-1轴的特定索引,而不是执行内部/外部设置逻辑。
keys:序列,默认值无。使用传递的键作为最外层构建层次索引。如果为多索引,应该使用元组。
levels:序列列表,默认值无。用于构建MultiIndex的特定级别(唯一值)。否则,它们将从键推断。
names:list,default无。结果层次索引中的级别的名称。
verify_integrity:boolean,default False。检查新连接的轴是否包含重复项。这相对于实际的数据串联可能是非常昂贵的。
copy:boolean,default True。如果为False,请勿不必要地复制数据

在这里插入图片描述
Merge 函数在作为主键的指定公共列上合并多个 dataframe。
在这里插入图片描述
Join 函数合并两个 dataframe 的方法与 merge 函数类似。
但是,它根据索引合并 dataframe,而不是某些指定列。
在这里插入图片描述
七、Pandas 的 Apply 函数
可以把apply函数想作地图功能,但它只对Pandas的DataFrame或者更具体地说是Series进行操作。Apply函数会对你指定的列或行中的每一个元素作用一个函数func。

DataFrame.apply(func, axis=0, **kwds)

该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。
这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。

八、Pivot Tables 数据透视表
数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关

pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

data : DataFrame
values : 要聚合的列,可选
index : column, Grouper, array, or list of the previous列,组合,数组或是他们的列表。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、判断题: Python语言是一种高级语言。【对】 2、多选题: Jupyter notebook中运行单元格的方法有哪几种?( ) 选项: A:Enter B:Shift+Enter C:Ctrl+Enter D:F5 答案: 【Shift+Enter;Ctrl+Enter】 3、单选题: Jupyter notebook的记事本文件扩展名为:( ) 选项: A:m B:py C:pyc D:ipynb 答案: 【ipynb】 4、判断题: Jupyter notebook 中的助手需要额外安装。答案: 【对】 5、单选题: Python安装扩展库常用的是( )工具 选项: A:setup B:update C:pip D:run 答案: 【pip】 6、单选题: 关于Python语言的注释,以下选项中描述错误的是:( ) 选项: A:python语言有两种注释方式:单行注释和多行注释 B:python语言的单行注释以#开头 C:python语言的单行注释以单引号开头 D:Python语言的多行注释以’’’(三个单引号)开头和结尾 答案: 【Python语言的单行注释以单引号开头】 7、单选题: 以下选项中,不是pip工具进行第三方库安装的作用的是:( ) 选项: A:安装一个库 B:卸载一个已经安装的第三方库 C:列出当前系统已经安装的第三方库 D:脚本程序转变为可执行程序 答案: 【脚本程序转变为可执行程序】 8、单选题: 安装一个库的命令格式是:( ) 选项: A:pip uninstall  B:pip -h C:pip install  D: ip download  答案: 【pip install 】 9、判断题: 标准的缩进格式是Python的语法之一。 选项: A:对 B:错 答案: 【对】 10、多选题: 下列导入第三库的操作中正确的是:( ) 选项: A:import numpy B:import numpy as np C:from matplotlib import pyplot D:from urllib.request import urlopen 案: 【import numpy;import numpy as np;from matplotlib import pyplot;from urllib.request import urlopen】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值