1、pandas主要的两个数据结构:Series和DataFrame

Series的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引。于是会自动创建一个0到N-1(N为长度)的整数型索引。

>>> import pandas as pd
>>> import numpy as np
>>> s = pd.Series([1,3,6,np.nan,44,1])
>>> print(s)
0 1.0
1 3.0
2 6.0
3 NaN
4 44.0
5 1.0
dtype: float64

DataFrame是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。DataFrame既有行索引也有列索引, 它可以被看做由Series组成的大字典。

>>> dates = pd.date_range('',periods=6)
>>> df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
>>> print(df)
a b c d
2016-01-01 1.306762 1.506943 0.682025 -0.054329
2016-01-02 2.626875 0.086998 0.307123 -0.498728
2016-01-03 -0.941697 0.206144 1.719719 1.084614
2016-01-04 -0.610912 -1.120358 -0.635338 1.145777
2016-01-05 -0.150501 0.768586 -0.158341 0.704960
2016-01-06 -0.759211 0.271800 0.768166 -0.293015

2、DataFrame的一些简单运用

>>> print(df['b'])
2016-01-01 1.506943
2016-01-02 0.086998
2016-01-03 0.206144
2016-01-04 -1.120358
2016-01-05 0.768586
2016-01-06 0.271800
Freq: D, Name: b, dtype: float64 >>> df1 = pd.DataFrame(np.arange(12).reshape((3,4)))#创建一组没有给定行标签和列标签的数据 df1:
>>> print(df1)
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11 >>> df2 = pd.DataFrame({'A' : 1.,
... 'B' : pd.Timestamp(''),
... 'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
... 'D' : np.array([3] * 4,dtype='int32'),
... 'E' : pd.Categorical(["test","train","test","train"]),
... 'F' : 'foo'})#另一种生成df的方法
>>>print(df2)
A B C D E F
0 1.0 2013-01-02 1.0 3 test foo
1 1.0 2013-01-02 1.0 3 train foo
2 1.0 2013-01-02 1.0 3 test foo
3 1.0 2013-01-02 1.0 3 train foo >>> print(df2.dtypes)#查看数据中的类型
A float64
B datetime64[ns]
C float32
D int32
E category
F object
dtype: object >>> print(df2.index) #查看对列的序号
Int64Index([0, 1, 2, 3], dtype='int64') >>> print(df2.columns)#查看每种数据的名称
Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object') >>> print(df2.values)#查看所有df2的值
[[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'test' 'foo']
[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'train' 'foo']
[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'test' 'foo']
[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'train' 'foo']] >>> df2.describe()#数据的总结
A C D
count 4.0 4.0 4.0
mean 1.0 1.0 3.0
std 0.0 0.0 0.0
min 1.0 1.0 3.0
25% 1.0 1.0 3.0
50% 1.0 1.0 3.0
75% 1.0 1.0 3.0
max 1.0 1.0 3.0 >>> print(df2.T)#翻转数据,transpose
0 1 2 3
A 1 1 1 1
B 2013-01-02 00:00:00 2013-01-02 00:00:00 2013-01-02 00:00:00 2013-01-02 00:00:00
C 1 1 1 1
D 3 3 3 3
E test train test train
F foo foo foo foo >>> print(df2.sort_index(axis=1, ascending=False))#对数据的index进行排序并输出
F E D C B A
0 foo test 3 1.0 2013-01-02 1.0
1 foo train 3 1.0 2013-01-02 1.0
2 foo test 3 1.0 2013-01-02 1.0
3 foo train 3 1.0 2013-01-02 1.0 >>> print(df2.sort_values(by='B'))#对数据值排序输出
A B C D E F
0 1.0 2013-01-02 1.0 3 test foo
1 1.0 2013-01-02 1.0 3 train foo
2 1.0 2013-01-02 1.0 3 test foo
3 1.0 2013-01-02 1.0 3 train foo

Pandas基本介绍的更多相关文章

  1. [数据分析工具] Pandas 功能介绍(一)

    如果你在使用 Pandas(Python Data Analysis Library) 的话,下面介绍的对你一定会有帮助的. 首先我们先介绍一些简单的概念 DataFrame:行列数据,类似 Exce ...

  2. 【学习】pandas 基础介绍说明 【pandas】

    本文来源于<利用python进行数据分析>中文版,大家有兴趣可以看原版,入门的东西得脚踏实地哈 1.pandas 数据结构介绍 首先熟悉它的两个主要数据结构,Series 和 DataFr ...

  3. python之pandas简单介绍及使用(一)

    python之pandas简单介绍及使用(一) 一. Pandas简介1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据 ...

  4. 读书笔记一、pandas数据结构介绍

    pandas数据结构介绍 主要两种数据结构:Series和DataFrame.   Series   Series是一种类似于一维数组的对象,由一组数据(各种NumPy数据类型)+数据标签(即索引)组 ...

  5. [数据分析工具] Pandas 功能介绍(二)

    条件过滤 我们需要看第一季度的数据是怎样的,就需要使用条件过滤 体感的舒适适湿度是40-70,我们试着过滤出体感舒适湿度的数据 最后整合上面两种条件,在一季度体感湿度比较舒适的数据 列排序 数据按照某 ...

  6. Python 数据处理扩展包: numpy 和 pandas 模块介绍

    一.numpy模块 NumPy(Numeric Python)模块是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list str ...

  7. 数据处理之pandas简单介绍

    Offical Website :http://pandas.pydata.org/ 一:两种基本的数据类型结构 Series 和 DataFrame 先来看一下Series import panda ...

  8. pandas基本介绍-【老鱼学pandas】

    前面我们学习了numpy,现在我们来学习一下pandas. Python Data Analysis Library 或 pandas 主要用于处理类似excel一样的数据格式,其中有表头.数据序列号 ...

  9. pandas简短介绍

    1.数据结构 维数 名称 描述 1 Series 一维带标签单一数据类型的数组 2 DataFrame 不同数据类型的列 2.十分钟学习pandas 2.1.导入所需模块 import pandas ...

随机推荐

  1. http://www.cnblogs.com/wuyunfei/p/4277226.html

    http://www.cnblogs.com/wuyunfei/p/4277226.html

  2. C# 监测每个方法的执行次数和占用时间(测试2)

    在Nuget引用 Castle.DynamicProxy 和 Newtonsoft.Json 这个 原文:http://www.cnblogs.com/RicCC/archive/2010/03/15 ...

  3. 神经网络中的激活函数具体是什么?为什么ReLu要好过于tanh和sigmoid function?(转)

    为什么引入激活函数? 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层 ...

  4. js高级-作用域链

    作用域链存放的就是 VO  AO 参数 变量 等

  5. java-学习2

    第一节 Java语言介绍 1.Java的起源 Oak-->Java      交互式操作智能家居 2.Java的发展 Java1.0 Java1.2    JavaSE  :Java平台标准版  ...

  6. 05_ssm基础(三)之Spring基础

    11.spring入门引导 12.spring_HelloWord程序 实现步骤: 0.找到spring压缩包,并解压 1.拷贝jar包 2.添加主配置文件(官方文档约28页) 3.在测试中使用 13 ...

  7. 如何更改Oracle字符集避免乱码

    转一位大神的笔记. 国内最常用的Oracle字符集ZHS16GBK(GBK 16-bit Simplified Chinese)能够支持繁体中文,并且按照2个字符长度存储一个汉字.UTF8字符集是多字 ...

  8. extJS 动态引用加载(转)

    ExtJs有庞大的类型库,很多类可能在当前的页面根本不会用到,我们可以引入动态加载的概念来即用即取.这些代码都要写在Ext.onReady外面. 1.动态引用外部Js //加载配置可用 Ext.Loa ...

  9. MyEclipse 10 注册码 破解 到期限制

    转载 https://blog.csdn.net/oJinSeNianHua1/article/details/69226524 把破解界面中的ACTIVATION_KEY复制到弹出的窗体“Enter ...

  10. Spring之jdbcTemplate实现orm

    public List<AppUser> getAppUser(AppUser appUser) { String sql = "select * from appuser a ...