快速使用

bogon:Documents rousseau$ ipython --pylab
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.
Using matplotlib backend: MacOSX
In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: import matplotlib as plt
In [4]: from pandas import Series, DataFrame

按照Shell中的语句,就可以进入到Ipython的环境中使用Pandas分析数据,并绘制图表。ipython 环境的具体安装配置在Mac很简单,通过pip安装一下就可以,其他操作系统的安装可以自己百度一下。如果没有 ipython 也不要紧,标准的 python 命令行环境下也可以使用。

如果你使用 ipython,通过TAB补齐和help功能能给你的工作带来很大的便利。

主要数据结构 Series 和 DataFrame 及创建

Pandas里两个主要的数据结构就是 Series 和 DataFrame。Series 类似于Python的字典,DataFrame可以理解为二维表。

Series

可以通过传入一个List来创建一个Series对象。

In [6]: s = pd.Series([1,2,4,5,6,np.nan,7,8])

In [7]: s
Out[7]:
0 1.0
1 2.0
2 4.0
3 5.0
4 6.0
5 NaN
6 7.0
7 8.0
dtype: float64

DataFrame

DataFrame 的创建有很多种方式,可以使用 numpy array 或者 Python的字典(包括嵌套字典)。

In [103]: dt = DataFrame({"name":['wang','lv','bao','song'],"sex":['male','female','male','female'],"age":[12,23,35,47]})

In [104]: dt
Out[104]:
age name sex
0 12 wang male
1 23 lv female
2 35 bao male
3 47 song female

查看、选择数据

Series、DataFrame 查看数据的方式可以非常灵活,利用索引、切片,以及一些内置函数。

查看索引,列

接上面的例子

In [118]: dt.index
Out[118]: RangeIndex(start=0, stop=4, step=1) In [119]: dt.columns
Out[119]: Index(['age', 'name', 'sex'], dtype='object')

通过 dt.values 还可以查看底层的数据。

选择查看部分数据

Series和DataFrame可以快速的从整个结果集中选择你需要的数据,包括选择一列或几列、一行或几行,以及通过对值进行筛选选择对应结果集。推荐使用.at、.iat、.loc、.iloc、.ix进行选择。

1、获取某一列

In [140]: dt['name']
Out[140]:
序号
0 wang
1 lv
2 bao
3 song
Name: name, dtype: object

2、获取行,对行进行切片

In [143]: dt[1:3]
Out[143]:
age name sex
序号
1 23 lv female
2 35 bao male

3、通过loc选择一行或多行

In [162]: dt.loc[1]
Out[162]:
age 23
name lv
sex female
Name: 1, dtype: object In [163]: dt.loc[1:3]
Out[163]:
age name sex
序号
1 23 lv female
2 35 bao male
3 47 song female

4、同时选择行和列

In [166]: dt.loc[2:3,['name','age']]
Out[166]:
name age
序号
2 bao 35
3 song 47

5、访问某个位置的值

In [168]: dt.at[1,'name']
Out[168]: 'lv'

i开头的函数,表示通过具体的位置选择数据,而不是通过标签(即行名或列名)。

6、通过一个列中的值来选择数据

In [170]: dt[ dt.age > 30 ]
Out[170]:
age name sex
序号
2 35 bao male
3 47 song female

7、通过where来筛选数据

In [183]: dt[dt > 30]
Out[183]:
age name sex
序号
0 NaN wang male
1 NaN lv female
2 35.0 bao male
3 47.0 song female

数据处理:转置、排序

对于一个DataFrame,可以进行行列的转置,就像Excel中粘贴时交换x/y轴一样。

In [176]: df = DataFrame({"beijing":{"people":3000,"area":5000,"university":200},"guangzhou":{"people":2000,"area":3000,"university":150},"shanghai":{"peo
...: ple":2800,"area":2500,"university":190}}) In [177]: df
Out[177]:
beijing guangzhou shanghai
area 5000 3000 2500
people 3000 2000 2800
university 200 150 190 In [178]: df.T
Out[178]:
area people university
beijing 5000 3000 200
guangzhou 3000 2000 150
shanghai 2500 2800 190

从这个例子可以看出来,构建 DataFrame 对象时,可以采用层次化的 dict 。

排序操作,可以按照列或者行进行排序,非常灵活。

In [194]: df.sort_values(by='beijing')
Out[194]:
beijing guangzhou shanghai
university 200 150 190
people 3000 2000 2800
area 5000 3000 2500 In [195]: df.sort_values(by='beijing',ascending=False)
Out[195]:
beijing guangzhou shanghai
area 5000 3000 2500
people 3000 2000 2800
university 200 150 190 In [196]: df.sort_values(axis=1,by='people',ascending=False)
Out[196]:
beijing shanghai guangzhou
area 5000 2500 3000
people 3000 2800 2000
university 200 190 150

统计操作

describe可以对数据集进行快速的统计分析。

In [198]: df.T.describe()
Out[198]:
area people university
count 3.000000 3.000000 3.000000
mean 3500.000000 2600.000000 180.000000
std 1322.875656 529.150262 26.457513
min 2500.000000 2000.000000 150.000000
25% 2750.000000 2400.000000 170.000000
50% 3000.000000 2800.000000 190.000000
75% 4000.000000 2900.000000 195.000000
max 5000.000000 3000.000000 200.000000

参考资料:

1、pandas

2、十分钟搞定Pandas

3、利用Python进行数据分析

Pandas快速入门(一)的更多相关文章

  1. pandas快速入门

    pandas快速入门 numpy之后让我们紧接着学习pandas.Pandas最初被作为金融数据分析工具而开发出来,后来因为其强大性以及友好性,在数据分析领域被广泛使用,下面让我们一窥究竟. 本文参考 ...

  2. Python pandas快速入门

    Python pandas快速入门2017年03月14日 17:17:52 青盏 阅读数:14292 标签: python numpy 数据分析 更多 个人分类: machine learning 来 ...

  3. Pandas 快速入门(二)

    本文的例子需要一些特殊设置,具体可以参考 Pandas快速入门(一) 数据清理和转换 我们在进行数据处理时,拿到的数据可能不符合我们的要求.有很多种情况,包括部分数据缺失,一些数据的格式不正确,一些数 ...

  4. Pandas快速入门笔记

    我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,我快速了解了一下提供了类似关系型或标签型数据结构的Pandas的使用方法.下面记录相关学习笔记. 数据结构 Panda ...

  5. Pandas快速入门(深度学习入门2)

    源地址为:http://pandas.pydata.org/pandas-docs/stable/10min.html#min Pandas(Python Data Analysis Library) ...

  6. pandas教程1:pandas数据结构入门

    pandas是一个用于进行python科学计算的常用库,包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单.pandas建造在NumPy之上,它使得以NumPy为中心的应用很容 ...

  7. Jupyter 快速入门——写python项目博客非常有用!!!

    from:https://blog.csdn.net/m0_37338590/article/details/78862488 一.简介: Jupyter Notebook(此前被称为 IPython ...

  8. python快速入门——进入数据挖掘你该有的基础知识

    这篇文章是用来总结python中重要的语法,通过这些了解你可以快速了解一段python代码的含义 Python 的基础语法来带你快速入门 Python 语言.如果你想对 Python 有全面的了解请关 ...

  9. [Python]Pandas简单入门(转)

    本篇文章转自 https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb?hl=zh-cn#scrollTo=zCOn ...

随机推荐

  1. kgtemp文件转mp3工具

    kgtemp文件是酷我音乐软件的缓存文件,本文从技术层面探讨如何解密该文件为mp3文件,并通过读取ID3信息来重命名. kgtemp解密 kgtemp文件前1024个字节是固定的包头信息,解密方案详细 ...

  2. WebApi 接口参数详解

    WebApi 接口参数不再困惑:传参详解   阅读目录 一.get请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4.“怪异”的get请求 二.post请求 1.基础类型参数 2.实体作为 ...

  3. Unit的各种断言

    今天遇到这个问题,就值得自己总结一下. 1.介绍 JUnit为我们提供了一些辅助函数,他们用来帮助我们确定被测试的方法是否按照预期的效果正常工作,通常,把这些辅助函数称为断言.下面我们来介绍一下JUn ...

  4. PAT 1066. Root of AVL Tree (25)

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  5. 阿里云服务器(windows)配置项目域名

    一.数据库是放在阿里云上!二.项目部署到服务器上,tomcat会一直运行(除非你手动停止)三.设置域名及tomcat配置(1)在阿里云控制台上的域名解析设置中添加记录,将域名映射到你的阿里云esc公网 ...

  6. js加入购物车抛物线动画

    天猫将商品加入购物车会有一个抛物线动画,告诉用户操作成功以及购物车的位置,业务中需要用到类似的效果,记录一下实现过程备忘,先上demo 一开始没有想到用抛物线函数去做,也已经忘记还有这么个函数了,想着 ...

  7. BZOJ.1143.[CTSC2008]祭祀(Dilworth定理 最大流ISAP)

    题目链接 题目是求最长反链,反链指点集内任意两点不能互相到达. 根据Dilworth定理,在DAG中,\[最长反链 = 最小路径覆盖 = V - 最大匹配数\] 用Floyd求一遍传递闭包后,在所有可 ...

  8. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  9. hdu 4605 树状数组 ****

    题目大意很简单. 有一颗树(10^5结点),所有结点要么没有子结点,要么有两个子结点.然后每个结点都有一个重量值,根结点是1 然后有一个球,从结点1开始往子孙结点走. 每碰到一个结点,有三种情况 如果 ...

  10. 吴恩达-coursera-机器学习-week10

    十七.大规模机器学习(Large Scale Machine Learning) 17.1 大型数据集的学习 17.2 随机梯度下降法 17.3 小批量梯度下降 17.4 随机梯度下降收敛 17.5 ...