python基础学习7【聚合apply()、透视表pivot |
您所在的位置:网站首页 › 数据透视表不可用 › python基础学习7【聚合apply()、透视表pivot |
使用apply方法聚合数据 apply()方法类似agg方法能够将函数应用于每一列。 使用transform方法聚合数据 transform方法能够对整个dataframe的所有元素进行操作。且transform方法只有一个参数func,表示对dataframe操作的函数; 同时transform方法还能够对dataframe分组后的对象groupby进行操作,可以实现组内离差标准化等操作。 创建透视表与交叉表 pivot_table函数: 可以更改margins参数,查看汇总数据; 当某些数据不存在时,会自动填充NaN,因此可以指定fill_value参数。 实操: 指定行和列绘制透视表情况: margins=True: 汇总求和:aggfun=np.sum 这一期的错误请看上一期的解答2,不是很想改正了。(水一波) 改完了就能看到正常的数据。 使用pandas进行数据预处理【合并数据、清洗数据、标准化数据、转换数据】 合并数据【横向、纵向】 横向表堆叠 当axis=1时,concat做行对齐,然后将不同列名称的两张或多张表合并。当两个表索引不完全一样时,可以使用join参数选择是内连接还是外连接。在内连接的情况下,仅仅返回索引重叠部分。在外连接的情况下,则显示索引的并集部分数据,不足的地方则使用空值填补。 当两张表完全一样时,不论join参数取值。 实操: import pandas as pdfrom sqlalchemy import create_engineengin = create_engine('mysql+pymysql://root:[email protected]:3306/test?charset=utf8')#这一句最好记到,写不对就会报错))纵向堆叠----concat函数 使用concat函数时,在默认情况下,即axis=0时,concat做列对齐,将不同行索引的两张或多张表纵向合并。 实操: a = data.iloc[:100,:]#前100行和所有列作为ab = data.iloc[100:,:]#100行以后的所有列数据作为bpd.concat([a,b]).shape#轴向不用定,默认纵向堆叠主键合并【merge、join】 通过一个或多个键将两个数据集的行连接起来,类似于sql中的join。 merge()函数: 和数据库的join一样,merge函数也有左连接、右连接、内连接和外连接,除此之外,在合并过程中可以对数据集进行排序。 可根据merge函数中的参数说明,并按照需求修改相关参数,就可以多种方法实现主键合并。 order = pd.read_csv('./609/meal_order_info.csv',encoding='gbk')order.head()合并: join() order.rename({'info_id':'order_id'},inplace=True)#重命名info_id为order_iddata.join(order,on = 'order_id',rsuffix='1')#右边堆叠combine_first方法 数据分析和处理过程中若出现两份数据的内容几乎一致的情况,但是某些特征在其中一张表上是完整的,而在另外一张表上的数据则是缺失的时候,可以用combine_first进行重叠合并。 import numpy as npdis1={'id':list(range(1,10)), 'cpu':['i7','i5',np.nan,'i7','i7','i5',np.nan,np.nan,'i5']}pd.DataFrame(dis1) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |