python列表append效率_8个提升Python数据分析效率的代码
技巧
原标题:8 个提升 Python 数据分析效率的代码技巧
编译:专知 / Yingying, Jiahui
作者:Conor Deweylinspace numpy
原⽂:
⼤家好,欢迎来到 Crossin的编程教室 !
数据分析是Python的⼀⼤应⽤场景。⽽不管是参加⽐赛,还是开发⼀个深度学习应⽤,第⼀步也都是数据分析。
今天我们介绍8个使⽤Python进⾏数据分析的⽅法,不仅能够提升运⾏效率,还能够使代码更加“优美”。
⼀⾏代码定义List
定义某种列表时,写For 循环过于⿇烦,幸运的是,Python有⼀种内置的⽅法可以在⼀⾏代码中解决这个问题。
下⾯是使⽤For循环创建列表和⽤⼀⾏代码创建列表的对⽐。
x = [ 1,2,3,4]
out = []
foritem inx:
out.append(item** 2)
print(out)
[ 1,4,9,16]
# vs.
x = [ 1,2,3,4]
out = [item** 2foritem inx]
print(out)
[ 1,4,9,16]
Lambda表达式
厌倦了定义⽤不了⼏次的函数?Lambda表达式是你的救星!Lambda表达式⽤于在Python中创建⼩型,⼀次性和匿名函数对象。它能替你创建⼀个函数。
lambda表达式的基本语法是:
lambdaarguments: expression
请注意,只要有⼀个lambda表达式,就可以完成常规函数可以执⾏的任何操作。你可以从下⾯的例⼦中,感受lambda表达式的强⼤功能:
double = lambdax: x * 2
print(double( 5))
10
Map和Filter
⼀旦掌握了lambda表达式,学习将它们与Map和Filter函数配合使⽤,可以实现更为强⼤的功能。
具体来说,map通过对列表中每个元素执⾏某种操作并将其转换为新列表。在本例中,它遍历每个元素并乘以2,构成新列表。请注意,list 函数只是将输出转换为列表类型。
# Map
seq = [ 1,2,3,4,5]
result = list( map( lambdavar: var* 2,seq))
print(result)
[ 2,4,6,8,10]
Filter函数接受⼀个列表和⼀条规则,就像map⼀样,但它通过⽐较每个元素和布尔过滤规则来返回原始列表的⼀个⼦集。
# Filter
seq = [ 1,2,3,4,5]
result = list( filter( lambdax: x > 2,seq))
print(result)
[ 3,4,5]
Arange和Linspace
Arange返回给定步长的等差列表。它的三个参数start、stop、step分别表⽰起始值,结束值和步长, 请注意,stop点是⼀个“截
⽌”值,因此它不会包含在数组输出中。
# np.arange(start, stop, step)
np.arange( 3,7,2)
array([ 3,5])
Linspace和Arrange⾮常相似,但略有不同。Linspace以指定数⽬均匀分割区间。所以给定区间start和end,以及等分分割点数⽬
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矩阵中求和值时,可能会遇到Axis。我们⽤删除⼀列(⾏)的例⼦:
df.drop( Column A,axis= 1)
df.drop( Row A,axis= 0)
如果你想处理列,将Axis设置为1,如果你想要处理⾏,将其设置为0。但为什么呢?回想⼀下Pandas中的shape
df.shape
( # of Rows, # of Columns)
从Pandas DataFrame中调⽤shape属性返回⼀个元组,第⼀个值代表⾏数,第⼆个值代表列数。如果你想在Python中对其进⾏索引,则⾏数下标为0,列数下标为1,这很像我们如何声明轴值。
Concat,Merge和Join
如果您熟悉SQL,那么这些概念对您来说可能会更容易。⽆论如何,这些函数本质上就是以特定⽅式组合DataFrame的⽅式。在哪个时间跟踪哪⼀个最适合使⽤可能很困难,所以让我们回顾⼀下。
Concat允许⽤户在表格下⾯或旁边追加⼀个或多个DataFrame(取决于您如何定义轴)。
Merge将多个DataFrame合并指定主键(Key)相同的⾏。
Join,和Merge⼀样,合并了两个DataFrame。但它不按某个指定的主键合并,⽽是根据相同的列名或⾏名合并。
Pandas Apply
pply是为Pandas Series⽽设计的。如果你不太熟悉Series,可以将它想成类似Numpy的数组。
Apply将⼀个函数应⽤于指定轴上的每⼀个元素。使⽤Apply,可以将DataFrame列(是⼀个Series)的值进⾏格式设置和操作,不⽤循环,⾮常有⽤!
df = pd.DataFrame([[ 4,9] ,] * 3,columns=[ A,B])
df
A B
0 4 9
1 4 9
2 4 9
df.apply(np.sqrt)
A B
0 2.0 3.0
1 2.0 3.0
2 2.0 3.0
df.apply(np.sum ,axis= 0)
A 12
B 27
df.apply(np.sum ,axis= 1)
0 13
1 13
2 13
Pivot Tables
最后是Pivot Tables。如果您熟悉Microsoft Excel,那么你也许听说过数据透视表。Pandas内置的pivot_table函数以DataFrame的形式创建电⼦表格样式的数据透视表,,它可以帮助我们快速查看某⼏列的数据。下⾯是⼏个例⼦:⾮常智能地将数据按照“Manager”分了组
pd.pivot_table(df ,index=[ "Manager","Rep"])
或者也可以筛选属性值
pd.pivot_table(df ,index=[ "Manager","Rep"] ,values=[ "Price"])
总结
希望上⾯的这些描述能够让你发现Python⼀些好⽤的函数和概念,为你的数据分析⼯作提升效率。
46个常⽤Pandas⽅法速查表 返回搜狐,查看更多
责任编辑:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论