pandas数据结构:Series/DataFrame;python函数:range/arange
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
- >>> 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]
>>> 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
- >>> 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
>>> 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- >>> 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])
>>> 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
- >>> 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])
>>> 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相关推荐
- pythonpandas函数详解_对pandas中Series的map函数详解
Series的map方法可以接受一个函数或含有映射关系的字典型对象. 使用map是一种实现元素级转换以及其他数据清理工作的便捷方式. (DataFrame中对应的是applymap()函数,当然Dat ...
- dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...
一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...
- 【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 ...
- Python数据分析——pandas数据结构(DataFrame)
一.pandas数据结构–DataFrame DataFrame 是表格型的数据结构,每列值的数据类型可以不同,也可以相同 DataFrame 常用于二维数据. DataFrame 的属性: valu ...
- Pandas数据结构之DataFrame常见操作
提取.添加.删除列 用方法链分配新列 索引 / 选择 数据对齐和运算 转置 DataFrame 应用 NumPy 函数 控制台显示 DataFrame 列属性访问和 IPython 代码补全 提取.添 ...
- pandas中Series的apply函数
闲来无事 浏览源码 发现了一个特别有意思的函数 Series中的apply()函数 和大多数apply函数一样,这个函数传入的参数也是一个函数,目的是对传入的series的值进行批量的处理,不用我们手 ...
- dataframe python格式_python3.6 pandas,Series和DataFrame基础格式与用法,附代码实例
pandas 是基于numpy构建的库,加上numpy,主要用于科学运算和数据处理. 也是一个让我忘记昂贵的MATLAB,并且不得不复习SQL的库.. 一般引入规定: In [105]: from p ...
- python科学计算笔记(三)pandas中Series和DataFrame练习
from pandas import Series, DataFrame# Series接收list或dict作为一维数据 #两个属性:values, index #① s1 = Series([4, ...
- python数据去重的函数_python pandas dataframe 去重函数的具体使用
今天笔者想对pandas中的行进行去重操作,找了好久,才找到相关的函数 先看一个小例子 from pandas import Series, DataFrame data = DataFrame({' ...
最新文章
- PHP协程:并发 shell_exec
- Python零基础入门(4)——强大的分支与循环
- mysql中使用join exists in时该注意的问题
- Jquery中获取select选中的文本与值
- mysql bandwidth_内存带宽对mysql影响多大
- 求序列最长不下降子序列_最长不下降子序列nlogn算法详解
- (转)Arcgis for JS之对象捕捉
- springboot细节挖掘(数据初始化)
- 程序员的十个经典算法
- 【2022最新Java面试宝典】—— 多线程面试(60道含答案)
- C++ MFC 打印PDF文件 以及打印指定页数
- PMP第三节:项目管理过程
- 教你如何用C/C++做高大上的软件界面
- 如何实现移动端点击下拉箭头显示全部文字
- I - 母牛哥与子序列 所有非空子集的乘积之和 数学结论题
- 简单的图片识别,源代码
- 【线上问题】线上故障分析-故障分级,原因,分类,混沌工程,排除方法
- 强强联手:诚迈科技携手研华共同发起嵌入式Linux和Android联盟
- Deeply Learned Attributes for Crowded Scene Understanding
- S型函数:Sigmoid 函数
热门文章
- LAMP 啟動 WWW 服務與測試 PHP 模組
- Firebug高级用法 - Web开发的利器
- 交换机工作原理(下)
- fail safe java_Java中快速失败(fail-fast)和安全失败(fail-safe)的区别?
- 西门子连接id_基于海创-IIoT可视化平台的西门子PLC数据采集
- cocos creator 游戏源码_Cocos Creator 3D引擎源码阅读之授之以渔 源码阅读
- C语言——把结构体数据封装成TLV格式的数据
- Java基础——Servlet(六)分页相关
- ubuntu部署java环境
- #include 和#include“”的区别