1、pandas对行列的基本操作命令:

import numpy as np
import pandas as pd
from pandas import Sereis, DataFrame ser = 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,
#即末端是包含的
data.irow(0) #取data的第一行
data.icol(0) #取data的第一列 data.head() #返回data的前几行数据,默认为前五行,需要前十行则data.head(10)
data.tail() #返回data的后几行数据,默认为后五行,需要后十行则data.tail(10) ser.iget_value(0) #选取ser序列中的第一个
ser.iget_value(-1) #选取ser序列中的最后一个,这种轴索引包含索引器的series不能采用ser[-1]去获取最后一个,这会引起歧义。 data.iloc[-1] #选取DataFrame最后一行,返回的是Series
data.iloc[-1:] #选取DataFrame最后一行,返回的是DataFrame data.loc['a',['w','x']] #返回‘a’行'w'、'x'列,这种用于选取行索引列索引已知 data.iat[1,1] #选取第二行第二列,用于已知行、列位置的选取。

2、对列的操作实战

import pandas as pd
import numpy as np
# 构建一个3*5的矩阵
data = pd.DataFrame(np.arange(1, 31, 2).reshape(3, 5),
index=['one', 'two', 'three'], columns=['a', 'b', 'c', 'd', 'e'])
print('index', data.index)
print('data', data)
'''
index Index(['one', 'two', 'three'], dtype='object')
data a b c d e
one 1 3 5 7 9
two 11 13 15 17 19
three 21 23 25 27 29
''' # 对列的操作如下: # 获取某一列
col_a = data.get('a')
col_a = data.a
col_a = data['a']
print('col_a', type(col_a), col_a)
col_a = data[['a']]
print('col_a', type(col_a), col_a)
'''
col_a <class 'pandas.core.series.Series'>
one 1
two 11
three 21
Name: a, dtype: int32
col_a <class 'pandas.core.frame.DataFrame'>
a
one 1
two 11
three 21
''' cols = data.ix[:, [0, 1, 2]] # 不知道列名只知道列的位置
print("cols1",cols)
cols = data.ix[1, [0]] # 选择第2行第1列的值
print("cols2",type(cols), cols)
cols = data.ix[1, 0]
print("cols3",type(cols), cols)
'''
cols1
a b c
one 1 3 5
two 11 13 15
three 21 23 25
cols2 <class 'pandas.core.series.Series'>
a 11
Name: two, dtype: int32
cols3 <class 'numpy.int32'> 11
'''
cols = data.ix[[1, 2], [0]] # 选择第2,3行第1列的值
print("cols4",type(cols), cols)
cols = data.ix[0:2, [0, 2]] # 选择第1-2行第1、3列的值,不包括2行
print("cols5",type(cols), cols)
cols = data.ix[1:2, 2:4] # 选择第2-3行,3-5(不包括5)列的值
print("cols6",type(cols), cols)
cols = data.ix[data.a > 5, 3] # 第1列中大于5所在的行第4列的值
print("cols7",type(cols), cols)
'''
cols4 <class 'pandas.core.frame.DataFrame'>
a
two 11
three 21
cols5 <class 'pandas.core.frame.DataFrame'>
a c
one 1 5
two 11 15
cols6 <class 'pandas.core.frame.DataFrame'>
c d
two 15 17
cols7 <class 'pandas.core.series.Series'>
two 17
three 27
Name: d, dtype: int32
''' cols = data.ix[1:3,['a','b']] # 还可以行数或列数跟行名列名混着用
print("cols8",type(cols), cols) cols = data.ix['one':'two',[0,1]] # 索引跟列用法类似,但包含开始、结束
print("cols9",type(cols), cols) cols = data.ix[['one','three'],[2,2]] # 索引跟列用法类似
print("cols10",type(cols), cols)
'''
cols8 <class 'pandas.core.frame.DataFrame'>
a b
two 11 13
three 21 23
cols9 <class 'pandas.core.frame.DataFrame'>
a b
one 1 3
two 11 13
cols10 <class 'pandas.core.frame.DataFrame'>
c c
one 5 5
three 25 25
'''

3、对行的操作实战

# 对行的操作,对行操作必须采用切片的方式例如data[1:2],而不能data[1]或者data['one']
rows = data.ix[1] # 获取第1行,错误用法rows = data[1] # 获取第1行
rows = data[1:2] # 获取第1行,等价rows = data.ix[1:2] # 获取第1行
print("rows1",type(rows), rows)
rows = data['one':'two'] # 当用已知的行索引时为前闭后闭区间,这点与切片稍有不同。
print("rows2",type(rows), rows)
'''
rows1 <class 'pandas.core.frame.DataFrame'>
a b c d e
two 11 13 15 17 19
rows2 <class 'pandas.core.frame.DataFrame'>
a b c d e
one 1 3 5 7 9
two 11 13 15 17 19
'''
#取DataFrame中最后一行,返回的是DataFrame类型,**注意**这种取法是有使用条件的,
# 只有当行索引不是数字索引时才可以使用,否则可以选用`data[-1:]`--返回DataFrame类型
# 或`data.irow(-1)`--返回Series类型
rows = data.ix[-1:]
print("rows3",type(rows), rows)
rows = data[-1:] #跟上面一样,取DataFrame中最后一行,返回的是DataFrame类型
print("rows4",type(rows), rows)
'''
rows3 <class 'pandas.core.frame.DataFrame'>
a b c d e
three 21 23 25 27 29
rows4 <class 'pandas.core.frame.DataFrame'>
a b c d e
three 21 23 25 27 29
'''
rows = data.head(1) #返回DataFrame中的第一行
print("rows5",type(rows), rows)
rows = data.tail(1) #返回DataFrame中的最后一行
print("rows6",type(rows), rows)
'''
rows5 <class 'pandas.core.frame.DataFrame'>
a b c d e
one 1 3 5 7 9
rows6 <class 'pandas.core.frame.DataFrame'>
a b c d e
three 21 23 25 27 29
'''

DataFrame对行列的基本操作实战的更多相关文章

  1. Spark RDD/Core 编程 API入门系列 之rdd实战(rdd基本操作实战及transformation和action流程图)(源码)(三)

    本博文的主要内容是: 1.rdd基本操作实战 2.transformation和action流程图 3.典型的transformation和action RDD有3种操作: 1.  Trandform ...

  2. pandas DataFrame(2)-行列索引及值的获取

    pandas DataFrame是二维的,所以,它既有列索引,又有行索引 上一篇里只介绍了列索引: import pandas as pd df = pd.DataFrame({'A': [0, 1, ...

  3. 第32讲:List的基本操作实战与基于模式匹配的List排序算法实现

    今天来学习一下list的基本操作及基于模式匹配的排序操作 让我们从代码出发 val bigData = List("hadoop","spark") val d ...

  4. DataFrame 行列数据的筛选

    一.对DataFrame的认知 DataFrame的本质是行(index)列(column)索引+多列数据. DataFrame默认索引是序号(0,1,2…),可以理解成位置索引. 一般我们用id标识 ...

  5. Python 数据科学系列 の Numpy、Series 和 DataFrame介绍

    本課主題 Numpy 的介绍和操作实战 Series 的介绍和操作实战 DataFrame 的介绍和操作实战 Numpy 的介绍和操作实战 numpy 是 Python 在数据计算领域里很常用的模块 ...

  6. dataframe常用处理

    获取列名:data.columns.values.tolist() 复制列: out['serial_number'] = out['2']这样就是新增了一列,复制了‘2’这一列,然后再del out ...

  7. dataframe基础

    1 df[i]   其中i是0,1,2,3,...  此时选中的是dataframe的第i列 2 dataframe查看每一列是否有缺失值 temp = data.isnull().any() #列中 ...

  8. Python for Data Analysis 学习心得(二) - pandas介绍

    一.pandas介绍 本篇程序上篇内容,在numpy下面继续介绍pandas,本书的作者是pandas的作者之一.pandas是非常好用的数据预处理工具,pandas下面有两个数据结构,分别为Seri ...

  9. 王家林 大数据Spark超经典视频链接全集[转]

    压缩过的大数据Spark蘑菇云行动前置课程视频百度云分享链接 链接:http://pan.baidu.com/s/1cFqjQu SCALA专辑 Scala深入浅出经典视频 链接:http://pan ...

随机推荐

  1. Spring MVC流程

    这是spring mvc框架结构图,图片是很早在网上撸过来的,具体在哪忘了…… 早期学习Springmvc 并没有具体了解过,只知道这样用很爽,最近了解下基本结构流程及组件所在…… 执行流程 Spri ...

  2. 0x80070522:客户端没有所需的特权的解决方法(win7,win10通过)

    往C盘上粘贴文件的时候提示错误0x80070522:客户端没有所需的特权,解决方法如下: 一般情况下,我们思考的方向肯定是往用户权限方向的,但增加的用户是最高权限的管理员还是不可以..   暂时还没有 ...

  3. 最近在研究syslog日志,就说一下syslog格式吧

    syslog格式:<PRI>HEADER MESSAGE syslog的消息长度:不超过1024.syslog格式举例:<15>Jul 10 12:00:00 192.168. ...

  4. 给大家介绍一个实用的RN神器DeviceEventEmitter

    再不出来更新一下自己都感觉不到自己还存在了,这个监听最常用的地方莫过于单选和全选了,,当然远不止这个了,大家可以自己去多尝试几波,举个栗子 A组件全选所在 //全选 choose(bool){ //选 ...

  5. java 每间隔一段时间执行一段代码

    Java中java.util.Timer类中有若干个schedule的重载方法,其中 void schedule(TimerTask task, long delay, long period ) 安 ...

  6. Red Hat Enterprise 7.5 安装后无法进入图形界面 This system is not registered with an entitlement server. You can use subscription-manager to register.

    This system is not registered with an entitlement server. You can use subscription-manager to regist ...

  7. 微信小程序:首页设置方法(开发模式,使用模式)与其他相关设置

    小程序开发并不愉快,许多必建的文件不会自动生成,页面之间的跳转没有快捷键,开发者工具显示区域受限……如果谁有对应的解决办法求告知…… 开始的时候每次保存代码,页面都会刷洗重新渲染一次,而且自动跳回首页 ...

  8. 学习小片段——thymeleaf入门

    1: 概述 thymeleaf是一个跟 Velocity.FreeMarker 类似的模板引擎,和以前学的jsp相近,但性能上无疑是比jsp好. 参考文档官方文档:https://www.thymel ...

  9. (原创)列主元Gauss消去法的通用程序

    import numpy as np np.set_printoptions(precision=5) A = np.array([[31., -13., 0., 0., 0., -10., 0., ...

  10. shell if判断写成一行

    [[ $? -eq 0 ]] && echo "backup $i success" || exit #判断上一个命令是否执行正确,退出状态吗如果为0,则执行ech ...