Pandas数据探索

  1. 查看数据
  2. 排序
  3. 索引和获取数据
  4. 应用函数到单元格、列、行
  5. 分组
  6. 汇总表
  7. 增删行列

pandas主要数据结构是Series和DataFrame类
1、series是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)及一组与之相关的数据标签(即索引)组成。
2、DataFrame是一个二维数据结构,即一张格,其中每列数据的类型相同。你可以把它看成由 Series 实例构成的字典。

首先载入必要的库,即 NumPy 和 Pandas

import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')

后两行表示在编译过程中忽略警告信息。

查看数据

df.head() 查看前 5 行数据。
df.shape查看该数据库的维度,行数和列数。
df.columns查看该数据库的特征名称,即列名。
df.info()查看该数据库的特征类型,注意是否有缺失值。
df.describe()可以显示数值特征(int64 和 float64)的基本统计学特性,如未缺失值的数值、均值、标准差、范围、四分位数等。
df.describe(include=[‘object’, ‘bool’])查看非数值特征的统计数据。

astype() 方法可以更改列的类型:
如:df[‘列名’] = df[‘列名’].astype(‘int64’)
value_counts() 方法可以查看类别(类型为 object )和布尔值(类型为 bool )特征:
如:df[‘列名’].value_counts() ——>显示的是数值
df[‘列名’].value_counts(normalize=True) ———>显示的是比例
问题:数据集中有多少男性和女性?

data['sex'].value_counts()

排序

1、根据一列排序
df.sort_values(by=‘列名’, ascending=False)
表示根据某个列名排序。ascending=False表示倒序排列;ascending=True表示升序排列。
2、根据多列排序
df.sort_values(by=[‘列名1’, ‘列名2’],ascending=[True, False])
表示先按 列名1 升序排列,再按 列名2 降序排列

索引和获取数据

df[‘列名’]得到单独的列
df[P(df[‘Name’])]布尔值索引获取单独的列
如:df[df[‘列名’] == 1].mean()表示当列名的值为1的数的均值。
df[df[‘列名1’] == 1][‘列名2’].mean()表示在列名1的值为1的情况下。对应列名2的均值。
问题:数据集中女性的平均年龄是多少?

data[data['sex'] == 'Female']['age'].mean()

问题:统计男性高收入人群中未婚(包含离婚和分居)人群各自所占数量。

 data[(data['sex'] == 'Male') &(data['marital-status'].isin(['Never-married', 'Separated', 'Divorced']))]['salary'].value_counts()

DataFrame 可以通过列名、行名、行号进行索引。loc 方法为通过名称索引,iloc 方法为通过数字索引。
df.loc[0:5, ‘列名1’:‘列名2’]表示输出0到5行,列名1到列名2的数据。
df.iloc[0:5, 0:3]表示输出前 5 行的前 3 列数据。
df[:1] 和 df[-1:] 可以得到 DataFrame 的首行和末行。

应用函数到单元格、列、行

df.apply(np.max)表示应用函数 max 至每一列,即输出每列的最大值。
map() 方法可以通过一个 {old_value:new_value} 形式的字典替换某一列中的值。
如:d = {‘No’: False, ‘Yes’: True}
df[‘列名’] = df[‘列名’].map(d)
将列名中所有的No替换为False,所有的Yes替换为True。
df = df.replace({‘列名’: d})
当然,使用 repalce() 方法一样可以达到替换的目的。

分组

Pandas 下分组数据的一般形式为:
df.groupby(by=grouping_columns)[columns_to_show].function()
根据 grouping_columns 的值进行分组。
接着,选中感兴趣的列(columns_to_show)。若不包括这一项,那么就会选中所有非 groupby 列(即除 grouping_colums 外的所有列)。
最后,应用一个或多个函数(function)。

汇总表

一、透视表
透视表(Pivot Table)是电子表格程序和其他数据探索软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上的分组将数据分配到各个矩形区域中

通过 pivot_table() 方法可以建立透视表,其参数如下:

values 表示需要计算的统计数据的变量列表
index 表示分组数据的变量列表
aggfunc 表示需要计算哪些统计数据,例如,总和、均值、最大值、最小值等。
如:df.pivot_table([‘列名1’, ‘列名2’, ‘列名3’], [‘分组变量列’], aggfunc=‘mean’)

二、交叉表
交叉表(Cross Tabulation)是一种用于计算分组频率的特殊透视表,在 Pandas 中一般使用 crosstab() 方法构建交叉表。
如:pd.crosstab(df[‘列1’], df[‘列2’])——>显示的是数值
pd.crosstab(df[‘列1’], df[‘列2’], normalize=True)——>显示的是比例
问题:计算各国超过和低于 50K 人群各自的平均周工作时长。

pd.crosstab(data['native-country'], data['salary'],values=data['hours-per-week'], aggfunc=np.mean).T

增删行列

增:
使用 insert()方法添加列
df.insert(loc=len(df.columns), column=‘添加的列名’, value=值)
减:
使用 drop() 方法删除列和行
移除先前创捷的列:
df.drop([‘列名1’, ‘列名2’], axis=1, inplace=True)axis=1表示列,inplace 参数表示是否修改原始 DataFrame
删除行:
df.drop([1, 2]).head()

Pandas数据探索相关推荐

  1. 几款强大的 Pandas 数据探索工具,推荐收藏使用

    对于 Python 数据分析领域,Pandas 绝对是中坚力量,那么围绕着这个工具,又衍生出了很多辅助工具,今天我们就一起来看看辅助 Pandas 来进行数据探索的几种工具 首先我们先来看看我们的测试 ...

  2. Pandas数据探索分析,分享两个神器!

    在使用 pandas 进行数据分析时,进行一定的数据探索性分析(EDA)是必不可少的一个步骤,例如常见统计指标计算.缺失值.重复值统计等. 使用 df.describe() 等函数进行探索当然是常见操 ...

  3. 推荐 2个十分好用的 pandas 数据探索分析神器!

    作者 | 俊欣 来源 | 关于数据分析与可视化 今天小编给大家推荐两款超好用的工具来对数据进行探索分析.更好地帮助数据分析师从数据集当中来挖掘出有用的信息 PandasGUI 一听到这个名字,大家想必 ...

  4. 推荐2个十分好用的pandas数据探索分析神器!

    今天小编给大家推荐两款超好用的工具来对数据进行探索分析.更好地帮助数据分析师从数据集当中来挖掘出有用的信息 PandasGUI 一听到这个名字,大家想必就会知道这个工具是在Pandas的基础之上加了G ...

  5. 【Python】安利 3 个 pandas 数据探索分析神器!

    EDA是数据分析必须的过程,用来查看变量统计特征,可以此为基础尝试做特征工程.东哥这次分享3个EDA神器,其实之前每一个都分享过,这次把这三个工具包汇总到一起来介绍. 1. Pandas_Profil ...

  6. 安利 3 个 pandas 数据探索分析神器!

    EDA是数据分析必须的过程,用来查看变量统计特征,可以此为基础尝试做特征工程.东哥这次分享3个EDA神器,其实之前每一个都分享过,这次把这三个工具包汇总到一起来介绍. 1. Pandas_Profil ...

  7. python pandas 数据探索

    来源于: Kaggle Lending Club Loan Data数据可视化分析与不良贷款预测 对特征缺失值的处理 1.计算特征缺失值比例的函数: def draw_missing_data_tab ...

  8. 一行代码加速你的Pandas数据探索分析

    本文3分钟,大幅提升分析数据效率 我们知道,pandas库为EDA提供了许多非常有用的功能.但是,在能够应用大多数功能之前,通常必须先从更通用的功能开始,例如df.describe()函数. 比如以分 ...

  9. Python数据挖掘:数据探索,数据清洗,异常值处理

    来源:天善智能韦玮老师 课堂笔记 作者:Dust 探索性数据分析Exploratory Data Analysis,EDA 数据探索的核心是︰ 1.数据质量分析(跟数据清洗密切联系) 2.数据特征分析 ...

最新文章

  1. matlab中矩阵的左除右除
  2. 洛谷P1667/[10.22 模拟赛] 数列 (思维+模拟)
  3. 【DIY】200403近期在做的项目小结,DIY进展汇报
  4. 内附 PPT | 新零售里程碑,神策数据新起点
  5. Dapper.NET——轻量ORM
  6. Eclipse中安装freemarker插件
  7. Linux中10个有用的命令行补齐命令
  8. dns 320 linux,linux 下 dns服务器(三 配置篇)
  9. sql replace函数用法_esProc 的 SQL 应用方案
  10. python正则表达式数字开头_Python正则表达式总结
  11. (转)Java任务调度框架Quartz入门教程指南(三)任务调度框架Quartz实例详解深入理解Scheduler,Job,Trigger,JobDetail...
  12. [转]Using Entity Framework (EF) Code-First Migrations in nopCommerce for Fast Customizations
  13. 注意判断js中使用正则表达式的转义字符,到底是对谁进行转义!!!
  14. Egret入门学习日记 --- 问题汇总
  15. html-css-js的几款前端开发工具
  16. 胎压检测c语言pta,汽车胎压检测系统的设计与实现
  17. 新版百元纸币下月发行!这些防伪你要知道
  18. 在Win7上装虚拟机
  19. 20211101bugku_re_mountain_climbing
  20. I219-V 14代 win7x64驱动程序

热门文章

  1. PS CC 2018 图层
  2. k8s+Jenkins+GitLab-自动化部署tomcat项目
  3. C#中三层架构UI、BLL、DAL、Model实际操作
  4. 当linux reboot不成功时怎么办
  5. 简书markdown
  6. opencv在大图片上贴小图
  7. 马自达CX-4升级英国·牧童Vaquero汽车音响
  8. 咪咕MGV2000-KL 16G 晶晨S905L3 广东爱家TV 卡刷包
  9. 揭秘你喜欢的3D电影、游戏角色的制作过程!
  10. 展馆人流量怎么测算?