数据分析是Python的一大应用场景。无论是参加Kaggle比赛,还是开发深度学习应用,第一步都是数据分析。今天我们介绍8种使用Python进行数据分析的方法,不仅可以提高运行效率,还可以让代码更“漂亮”。当一行代码定义List来定义某种列表时,写一个For循环太麻烦了。幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题。下面是使用For循环创建列表与使用一行代码创建列表的比较。x=[1,2,3,4]out=[]foriteminx:out.append(item**2)print(out)[1,4,9,16]#vs.x=[1,2,3,4]out=[item**2foriteminx]print(out)[1,4,9,16]Lambda表达式是否厌倦了定义不常使用的函数?Lambda表达式是您的救星!Lambda表达式用于在Python中创建小型、一次性和匿名的函数对象。它可以为您创建一个功能。lambda表达式的基本语法是:lambdaarguments:expression请注意,只要有lambda表达式,常规函数可以做的任何事情都可以做。你可以从下面的例子中感受到lambda表达式的强大:double=lambdax:x*2print(double(5))10Map和Filter一旦你掌握了lambda表达式,学习将它们与Map和Filter函数一起使用,可以实现更多强大的功能。具体来说,map通过对列表中的每个元素执行一些操作并将其转换为新列表来工作。在这种情况下,它遍历每个元素并将其乘以2,形成新列表。请注意,list()函数只是将输出转换为列表类型。#Mapseq=[1,2,3,4,5]result=list(map(lambdavar:var*2,seq))print(result)[2,4,6,8,10]Filter函数接受一个列表和一个规则,如地图,但它通过将每个元素与布尔过滤规则进行比较来返回原始列表的子集。#Filterseq=[1,2,3,4,5]result=list(filter(lambdax:x>2,seq))print(result)[3,4,5]Arange和LinspaceArange返回算术列表。它的三个参数start、stop、step分别代表起始值、结束值和步长。请注意,停止点是一个“截止”值,因此它不会包含在数组输出中。#np.arange(start,stop,step)np.arange(3,7,2)array([3,5])Linspace和Arrange非常相似,但略有不同。Linspace将间隔除以指定的数字。因此给定区间开始和结束,以及相等分割点的数量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])轴代表什么?在Pandas中,在NumPy矩阵中删除列或对值求和时可能会遇到Axis。我们以删除列(行)为例:df.drop(ColumnA,axis=1)df.drop(RowA,axis=0)如果你想处理列,设置Axis为1,如果你想要处理rows,请将其设置为0。但是为什么呢?回想一下Pandas中的shapef.shape(#ofRows,#ofColumns)从PandasDataFrame调用shape属性并返回一个元组,其中第一个值表示行数,第二个值表示列数。如果你想在Python中对其进行索引,行数将为0,列数将为1,就像我们声明轴值的方式一样。Concat、Merge和Join如果您熟悉SQL,这些概念对您来说可能更容易理解。无论如何,这些功能本质上是您如何以特定方式组合DataFrame。很难确定在什么时候使用哪个最好,所以让我们回顾一下。Concat允许用户在表格下方或旁边附加一个或多个DataFrame(取决于您如何定义轴)。Merge将多个DataFrames与具有相同指定主键(Key)的行合并。Join和Merge一样,合并两个DataFrame。但是它不是按指定的主键合并,而是根据相同的列或行名称进行合并。PandasApplypply专为Pandas系列设计。如果您不熟悉Series,请将其视为类似Numpy的数组。Apply将函数应用于沿指定轴的每个元素。使用Apply,您可以在不循环的情况下格式化和操作DataFrame列(这是一个Series)的值,??这非常有用!df=pd.DataFrame([[4,9],]*3,columns=[A,B])dfAB049149249df.apply(np.sqrt)AB02.03.012.03.022.03.0df.apply(np.sum,axis=0)A12B27df.apply(np.sum,axis=1)013113213数据透视表最后,数据透视表。如果您熟悉MicrosoftExcel,那么您可能听说过数据透视表。Pandas内置的pivot_table函数以DataFrame的形式创建了一个电子表格样式的数据透视表,可以帮助我们快速查看某些列的数据。下面是几个例子:非常智能地根据“Manager”pd.pivot_table(df,index=["Manager","Rep"])或过滤属性值pd.pivot_table(df,index=["Manager","Rep"],values=["Price"])总结希望以上的介绍能帮助大家发现Python中一些有用的函数和概念,提高大家数据分析工作的效率。
