1. Series

  Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。

  1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1)。

# 引入Series和DataFrameIn [16]: from pandas import Series,DataFrame
In [17]: import pandas as pdIn [18]: ser1 = Series([1,2,3,4])In [19]: ser1
Out[19]:
0    1
1    2
2    3
3    4
dtype: int64

  1.2 当要生成一个指定索引的Series 时候,可以这样:  

# 给index指定一个listIn [23]: ser2 = Series(range(4),index = ["a","b","c","d"])In [24]: ser2
Out[24]:
a    0
b    1
c    2
d    3
dtype: int64

  1.3 也可以通过字典来创建Series对象

In [45]: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}In [46]: ser3 = Series(sdata)
# 可以发现,用字典创建的Series是按index有序的
In [47]: ser3
Out[47]:
Ohio      35000
Oregon    16000
Texas     71000
Utah       5000
dtype: int64

  在用字典生成Series的时候,也可以指定索引,当索引中值对应的字典中的值不存在的时候,则此索引的值标记为Missing,NA,并且可以通过函数(pandas.isnull,pandas.notnull)来确定哪些索引对应的值是没有的。

In [48]: states = ['California', 'Ohio', 'Oregon', 'Texas']In [49]: ser3 = Series(sdata,index = states)In [50]: ser3
Out[50]:
California        NaN
Ohio          35000.0
Oregon        16000.0
Texas         71000.0
dtype: float64# 判断哪些值为空In [51]: pd.isnull(ser3)Out[51]: California     TrueOhio          FalseOregon        FalseTexas         Falsedtype: bool

In [52]: pd.notnull(ser3)Out[52]: California    FalseOhio           TrueOregon         TrueTexas          Truedtype: bool

  1.4 访问Series中的元素和索引:

# 访问索引为"a"的元素In [25]: ser2["a"]
Out[25]: 0
# 访问索引为"a","c"的元素
In [26]: ser2[["a","c"]]
Out[26]:
a    0
c    2
dtype: int64
# 获取所有的值
In [27]: ser2.values
Out[27]: array([0, 1, 2, 3])
# 获取所有的索引
In [28]: ser2.index
Out[28]: Index([u'a', u'b', u'c', u'd'], dtype='object')

  1.5 简单运算

  在pandas的Series中,会保留NumPy的数组操作(用布尔数组过滤数据,标量乘法,以及使用数学函数),并同时保持引用的使用

In [34]: ser2[ser2 > 2]
Out[34]:
a    64
d     3
dtype: int64In [35]: ser2 * 2
Out[35]:
a    128
b      2
c      4
d      6
dtype: int64In [36]: np.exp(ser2)
Out[36]:
a    6.235149e+27
b    2.718282e+00
c    7.389056e+00
d    2.008554e+01
dtype: float64

  1.6 Series的自动对齐

    Series的一个重要功能就是自动对齐(不明觉厉),看看例子就明白了。 差不多就是不同Series对象运算的时候根据其索引进行匹配计算。

# ser3 的内容In [60]: ser3
Out[60]:
Ohio      35000
Oregon    16000
Texas     71000
Utah       5000
dtype: int64
# ser4 的内容
In [61]: ser4
Out[61]:
California        NaN
Ohio          35000.0
Oregon        16000.0
Texas         71000.0
dtype: float64
# 相同索引值的元素相加
In [62]: ser3 + ser4
Out[62]:
California         NaN
Ohio           70000.0
Oregon         32000.0
Texas         142000.0
Utah               NaN
dtype: float64

  1.7 命名

  Series对象本身,以及索引都有一个 name 属性

In [64]: ser4.index.name = "state"In [65]: ser4.name = "population"In [66]: ser4
Out[66]:
state
California        NaN
Ohio          35000.0
Oregon        16000.0
Texas         71000.0
Name: population, dtype: float64

转自:http://www.cnblogs.com/linux-wangkun/p/5903380.html


DataFrame

用pandas中的DataFrame时选取行或列:

import numpy as np
import pandas as pd
from pandas import Sereis, DataFrameser = Series(np.arange(3.))data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))data['w']  #选择表格中的'w'列,使用类字典属性,返回的是Series类型data.w    #选择表格中的'w'列,使用点属性,返回的是Series类型data[['w']]  #选择表格中的'w'列,返回的是DataFrame类型data[['w','z']]  #选择表格中的'w'、'z'列data[0:2]  #返回第1行到第2行的所有行,前闭后开,包括前不包括后data[1:2]  #返回第2行,从0计,返回的是单行,通过有前后值的索引形式,#如果采用data[1]则报错data.ix[1:2] #返回第2行的第三种方法,返回的是DataFrame,跟data[1:2]同data['a':'b']  #利用index值进行切片,返回的是**前闭后闭**的DataFrame, #即末端是包含的  #——————新版本pandas已舍弃该方法,用iloc代替———————
data.irow(0)   #取data的第一行
data.icol(0)   #取data的第一列ser.iget_value(0)  #选取ser序列中的第一个
ser.iget_value(-1) #选取ser序列中的最后一个,这种轴索引包含索引器的series不能采用ser[-1]去获取最后一个,这会引起歧义。
#————————————————————————————-----------------data.head()  #返回data的前几行数据,默认为前五行,需要前十行则data.head(10)
data.tail()  #返回data的后几行数据,默认为后五行,需要后十行则data.tail(10)data.iloc[-1]   #选取DataFrame最后一行,返回的是Series
data.iloc[-1:]   #选取DataFrame最后一行,返回的是DataFramedata.loc['a',['w','x']]   #返回‘a’行'w'、'x'列,这种用于选取行索引列索引已知data.iat[1,1]   #选取第二行第二列,用于已知行、列位置的选取。

 转自:https://blog.csdn.net/xiaodongxiexie/article/details/53108959


DataFrame的排序

原来的方法sort/sort_index都已经过时,调用时会报错:

sort方法就直接找不到。

应该调用sort_values方法来进行排序:


Python 中的range,以及numpy包中的arange函数

range()函数

  • 函数说明: range(start, stop[, step]) -> range object,根据start与stop指定的范围以及step设定的步长,生成一个序列。
    参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
                  end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
                  scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
    函数返回的是一个range object
    例子:
>>> range(0,5)                 #生成一个range object,而不是[0,1,2,3,4]
range(0, 5)
>>> c = [i for i in range(0,5)]     #从0 开始到4,不包括5,默认的间隔为1
>>> c
[0, 1, 2, 3, 4]
>>> c = [i for i in range(0,5,2)]   #间隔设为2
>>> c
[0, 2, 4]  

若需要生成[ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9]

>>> range(0,1,0.1)    #range中的setp 不能使float
Traceback (most recent call last):  File ”<pyshell#5>”, line 1, in <module>  range(0,1,0.1)
TypeError: ’float’ object cannot be interpreted as an integer  

arrange()函数

  • 函数说明:arange([start,] stop[, step,], dtype=None)根据start与stop指定的范围以及step设定的步长,生成一个 ndarray。 dtype : dtype
            The type of the output array.  If `dtype` is not given, infer the data
            type from the other input arguments.
>>> np.arange(3)  array([0, 1, 2])  >>> np.arange(3.0)  array([ 0.,  1.,  2.])  >>> np.arange(3,7)  array([3, 4, 5, 6])  >>> np.arange(3,7,2)  array([3, 5])  >>> arange(0,1,0.1)
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9]) 

转自:http://blog.csdn.net/qianwenhong/article/details/41414809

Python 中的range,以及numpy包中的arange函数

range()函数

  • 函数说明: range(start, stop[, step]) -> range object,根据start与stop指定的范围以及step设定的步长,生成一个序列。
    参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
                  end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
                  scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
    函数返回的是一个range object
    例子:
  • [python] view plaincopy
    1. >>> range(0,5)                 #生成一个range object,而不是[0,1,2,3,4]
    2. range(0, 5)
    3. >>> c = [i for i in range(0,5)]     #从0 开始到4,不包括5,默认的间隔为1
    4. >>> c
    5. [0, 1, 2, 3, 4]
    6. >>> c = [i for i in range(0,5,2)]   #间隔设为2
    7. >>> c
    8. [0, 2, 4]
    >>> range(0,5)               #生成一个range object,而不是[0,1,2,3,4]
    range(0, 5)
    >>> c = [i for i in range(0,5)]     #从0 开始到4,不包括5,默认的间隔为1
    >>> c
    [0, 1, 2, 3, 4]
    >>> c = [i for i in range(0,5,2)]   #间隔设为2
    >>> c
    [0, 2, 4]
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 若需要生成[ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9]
    [python] view plaincopy
    1. >>> range(0,1,0.1)    #range中的setp 不能使float
    2. Traceback (most recent call last):
    3. File ”<pyshell#5>”, line 1, in <module>
    4. range(0,1,0.1)
    5. TypeError: ’float’ object cannot be interpreted as an integer
    >>> range(0,1,0.1)    #range中的setp 不能使float
    Traceback (most recent call last):File "<pyshell#5>", line 1, in <module>range(0,1,0.1)
    TypeError: 'float' object cannot be interpreted as an integer
    • 1
    • 2
    • 3
    • 4
    • 5

arrange()函数

  • 函数说明:arange([start,] stop[, step,], dtype=None)根据start与stop指定的范围以及step设定的步长,生成一个 ndarray。 dtype : dtype
            The type of the output array.  If `dtype` is not given, infer the data
            type from the other input arguments.

    [python] view plaincopy
    1. >>> np.arange(3)
    2. array([0, 1, 2])
    3. >>> np.arange(3.0)
    4. array([ 0.,  1.,  2.])
    5. >>> np.arange(3,7)
    6. array([3, 4, 5, 6])
    7. >>> np.arange(3,7,2)
    8. array([3, 5])
      >>> np.arange(3)array([0, 1, 2])>>> np.arange(3.0)array([ 0.,  1.,  2.])>>> np.arange(3,7)array([3, 4, 5, 6])>>> np.arange(3,7,2)array([3, 5])
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • [python] view plaincopy
    1. >>> arange(0,1,0.1)
    2. array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])
    >>> arange(0,1,0.1)
    array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])

转载于:https://www.cnblogs.com/xianhan/p/9429849.html

pandas数据结构:Series/DataFrame;python函数:range/arange相关推荐

  1. pythonpandas函数详解_对pandas中Series的map函数详解

    Series的map方法可以接受一个函数或含有映射关系的字典型对象. 使用map是一种实现元素级转换以及其他数据清理工作的便捷方式. (DataFrame中对应的是applymap()函数,当然Dat ...

  2. dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...

    一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...

  3. 【DS with Python】 Pandas中Series DataFrame的结构、创建、查询、修改语法与实例

    文章目录 前言 一.Series结构与应用 1.1 Series的构造 1.2 创建Series 1.2.1 可用于创建Series的类型 1.2.2 三种设置index的方法 1.2.3 Serie ...

  4. Python数据分析——pandas数据结构(DataFrame)

    一.pandas数据结构–DataFrame DataFrame 是表格型的数据结构,每列值的数据类型可以不同,也可以相同 DataFrame 常用于二维数据. DataFrame 的属性: valu ...

  5. Pandas数据结构之DataFrame常见操作

    提取.添加.删除列 用方法链分配新列 索引 / 选择 数据对齐和运算 转置 DataFrame 应用 NumPy 函数 控制台显示 DataFrame 列属性访问和 IPython 代码补全 提取.添 ...

  6. pandas中Series的apply函数

    闲来无事 浏览源码 发现了一个特别有意思的函数 Series中的apply()函数 和大多数apply函数一样,这个函数传入的参数也是一个函数,目的是对传入的series的值进行批量的处理,不用我们手 ...

  7. dataframe python格式_python3.6 pandas,Series和DataFrame基础格式与用法,附代码实例

    pandas 是基于numpy构建的库,加上numpy,主要用于科学运算和数据处理. 也是一个让我忘记昂贵的MATLAB,并且不得不复习SQL的库.. 一般引入规定: In [105]: from p ...

  8. python科学计算笔记(三)pandas中Series和DataFrame练习

    from pandas import Series, DataFrame# Series接收list或dict作为一维数据 #两个属性:values, index #① s1 = Series([4, ...

  9. python数据去重的函数_python pandas dataframe 去重函数的具体使用

    今天笔者想对pandas中的行进行去重操作,找了好久,才找到相关的函数 先看一个小例子 from pandas import Series, DataFrame data = DataFrame({' ...

最新文章

  1. PHP协程:并发 shell_exec
  2. Python零基础入门(4)——强大的分支与循环
  3. mysql中使用join exists in时该注意的问题
  4. Jquery中获取select选中的文本与值
  5. mysql bandwidth_内存带宽对mysql影响多大
  6. 求序列最长不下降子序列_最长不下降子序列nlogn算法详解
  7. (转)Arcgis for JS之对象捕捉
  8. springboot细节挖掘(数据初始化)
  9. 程序员的十个经典算法
  10. 【2022最新Java面试宝典】—— 多线程面试(60道含答案)
  11. C++ MFC 打印PDF文件 以及打印指定页数
  12. PMP第三节:项目管理过程
  13. 教你如何用C/C++做高大上的软件界面
  14. 如何实现移动端点击下拉箭头显示全部文字
  15. I - 母牛哥与子序列 所有非空子集的乘积之和 数学结论题
  16. 简单的图片识别,源代码
  17. 【线上问题】线上故障分析-故障分级,原因,分类,混沌工程,排除方法
  18. 强强联手:诚迈科技携手研华共同发起嵌入式Linux和Android联盟
  19. Deeply Learned Attributes for Crowded Scene Understanding
  20. S型函数:Sigmoid 函数

热门文章

  1. LAMP 啟動 WWW 服務與測試 PHP 模組
  2. Firebug高级用法 - Web开发的利器
  3. 交换机工作原理(下)
  4. fail safe java_Java中快速失败(fail-fast)和安全失败(fail-safe)的区别?
  5. 西门子连接id_基于海创-IIoT可视化平台的西门子PLC数据采集
  6. cocos creator 游戏源码_Cocos Creator 3D引擎源码阅读之授之以渔 源码阅读
  7. C语言——把结构体数据封装成TLV格式的数据
  8. Java基础——Servlet(六)分页相关
  9. ubuntu部署java环境
  10. #include 和#include“”的区别