本文介绍了8种数据分析的方法,不仅可以提高运行效率,还可以让代码变得更加“漂亮”。
一行代码定义List
在定义某种列表时,编写For循环太麻烦了。 幸运的是,有一种内置方法可以用一行代码解决这个问题。 以下是使用 For 循环创建列表与使用一行代码创建列表的比较。
x = [1,2,3,4]
输出 = []
对于 x 中的项目:
出。(项目** 2)
打印出)
[1,4,9,16]
# 对比
x = [1,2,3,4]
out = [item** 2 for x 中的项目]
打印出)
[1,4,9,16]
表达
厌倦了定义只使用几次的函数? 表情是你的救星! 表达式用于在 中创建小型、一次性和匿名函数对象,从而为您创建一个函数。
表达式的基本语法是:
:
注意! 只要有一个表达式,你就可以做任何常规函数能做的事情。
从下面的例子中你可以感受到表达式的力量:
= x: x * 2
打印((5))
10
地图和
一旦掌握了表达式,就可以学习将它们与地图和函数一起使用,以实现更强大的功能。 具体来说,map 的工作原理是对列表中的每个元素执行一些操作并将其转换为新列表。
在本例中,它会迭代每个元素并将其乘以 2 以形成一个新列表。 (注意!list函数只是将输出转换为列表类型)
#地图
序列 = [1, 2, 3, 4, 5]
= 列表( 地图( var: var* 2, seq))
打印()
[2,4,6,8,10]
该函数接受一个列表和一个规则,就像映射一样,但它通过将每个元素与布尔过滤规则进行比较来返回原始列表的子集。
#
序列 = [1, 2, 3, 4, 5]
= 列表(( x: x > 2, seq))
打印()
[3,4,5]
和
返回给定步骤的算术列表。 它的三个参数start、stop、step分别表示起始值、结束值和步长。 请注意! 停止点是一个“截止”值,因此它不会包含在数组输出中。
# np.(开始、停止、步骤)
np.(3, 7, 2)
数组([3, 5])
与 非常相似,但略有不同。 将间隔除以指定的数字,因此给定间隔开始和结束以及相等分割点的数量 num,将返回一个 NumPy 数组。
这对于可视化数据和在绘图时声明轴特别有用。
# np.(开始、停止、编号)
np.(2.0, 3.0, 数量= 5)
数组([2.0, 2.25, 2.5, 2.75, 3.0]
轴代表什么?
中,在删除 NumPy 矩阵中的列或求和值时,您可能会遇到 Axis。 我们以删除列(行)为例:
df.drop('A', 轴= 1)
df.drop('A行', axis= 0)
如果要处理列,请将 Axis 设置为 1,如果要处理行,请将其设置为 0。但是为什么呢? 回想一下 中的形状。
df.形状
(行数,数量)
从中调用 shape 属性会返回一个元组,其中第一个值表示行数,第二个值表示列数。
如果你想对其进行索引,行号将被索引为 0,列号将被索引为 1,就像我们声明轴值的方式一样。
,合并并加入
如果您熟悉 SQL,这些概念对您来说可能会更容易。 无论如何,这些功能本质上只是它们以特定方式组合的方式。 跟踪哪一个最适合在什么时间使用可能很困难,所以让我们回顾一下它们。
允许用户在表格下方或旁边附加一个或多个(取决于您定义轴的方式)。
合并合并具有相同指定主键(Key)的多行。
连接与合并一样,将两个结合起来。 但它并不是按指定的主键进行合并,而是按相同的列名或行名进行合并。
是专为. 如果您不熟悉它,请将其想象为 Numpy 数组。
应用将函数应用于指定轴上的每个元素。 使用Apply,可以对列的值进行格式化和操作,无需循环,非常有用!
df = pd.([[ 4, 9] ,] * 3, =[ 'A', 'B'])
df
AB
0 4 9
1 4 9
2 4 9
df.应用(np.sqrt)
AB
0 2.0 3.0
1 2.0 3.0
2 2.0 3.0
df.apply(np.sum, 轴= 0)
一个 12
乙27
df.apply(np.sum, 轴= 1)
0 13
1 13
2 13
数据透视表
如果您熟悉 Excel,那么您可能听说过数据透视表。
内置函数以 的形式创建电子表格样式的数据透视表,可以帮助我们快速查看某些列中的数据。
这里有一些例子:
数据根据“”非常智能地分组:
pd.(df,索引=[“”,“代表”])
或者您可以过滤属性值
pd.(df ,index=[ "","Rep"] ,=[ "价格"])
我希望以上描述可以帮助您发现一些有用的功能和概念。