python数据分析基础视频08-python中的数据透视表df.pivot_table()

本系列课程适用人群:

  1. python零基础数据分析的朋友;

  2. 在校学生;

  3. 职场中经常要处理各种数据表格,或大量数据(十万级以上)的朋友;

  4. 喜欢图表可视化的朋友;

系列视频目前可在B站观看,会定期更新,欢迎大家吐槽!

本节概要:看excel中最强大的数据透视表在python中如何实现

视频地址:python中数据透视表

本节代码:

import pandas as pdimport numpy as npimport osos.chdir('D:/python/课件/data/gaokaodata/')# =============================================================================# 批量读取数据# =============================================================================# 此数据由和鲸社区整理:https://www.kesci.com/mw/project/5efff5de63975d002c98fc28/dataset# 获取文件夹相关信息,os.walk()方法返回3个结果,其中files最终要。root, dirs, files只是自定义的变量名称,可写成别的名for root, dirs, files in os.walk('.'):    print(files)      # 定义一个空的dataframe,读取的每个表中的数据都添加到此变量中   data = pd.DataFrame()  for i in files:  # 依次读取files文件中的元素    # 读取第i个文件,"."为上面设置的默认路径,i为文件名称。组合在一起正好为文件路径    datai = pd.read_csv('./'   i)       # 计算文件行数    datai_len = len(datai)    # 读取的文件添加到data变量中    data = data.append(datai)   # 添加到总的数据中    # print中格式化写法。%i表示此处为一整数,整数的值为引号外面%后面的变量,按顺序获取。其他写法 %s:字符串  %f:小数    print('文件%i列, 读取%i行数据,名称:%s'%(len(datai.columns),datai_len,i)) # =============================================================================# 数据透视表# ============================================================================='''pivot_table(values=None, # 计算的统计量,values可以不用写            index=None,  # 行变量            columns=None, # 列字典            aggfunc='mean', #计算的统计量,可以写成 'sum' 或者 np.sum  两种形式            fill_value=None, # 缺失值的显示方式            margins=False, # 是否显示合计行、合计列,False为不显示            dropna=True,  # 不计算全部为缺失值的列,不常用            margins_name='All', # 合计行、列的名称,默认为英文单词ALL,可改为"合计","总计"等            observed=False) # 仅适用于分类索引的,不常用'''# 在spyder中查函数的帮助文件 ★★★★★help(data.pivot_table)  # pivot_table后面没有括号# 每个地区的分数线result1 = data.pivot_table('分数线',                           index='地区',                           aggfunc='mean').sort_values(by='分数线',ascending=False)# 每个地区,不同年份的分数线result2 = data.pivot_table('分数线',                           index='地区',                           columns='年份',                           aggfunc='mean',                           margins=True).round(0)# 不同地区,不同考生类别、不同年份的分数线result3 = data.pivot_table('分数线',                           index=['地区','考生类别'],                           columns='年份',                           fill_value=None,                           aggfunc='mean',                           margins=True).round(0)# 对同一变量计算多个统计量result4 = data.pivot_table('分数线',                           index='地区',                           aggfunc=['mean','max','min','std']).round(0)# 对不同的变量计算不同的统计量result5 = data.pivot_table(index='地区',                           aggfunc={'分数线':np.mean, '批次':'count'}).round(0)# =============================================================================# 导入excel# =============================================================================result3.to_excel('D:/python/课件/结果/高考成绩.xlsx')

来源:https://www.icode9.com/content-1-783251.html

(0)

相关推荐