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. node.js学习4--------------------- 根据不同路径来响应内容,以及中文乱码的解决

    /** * http服务器的搭建,相当于php中的Apache或者java中的tomcat服务器 */ // 导包 const http=require("http"); //创建 ...

  2. (2018 Multi-University Training Contest 3)Problem D. Euler Function

    //题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6322 //题目大意:给定 k,求第 k 小的数 n,满足 φ(n) 是合数.显然 φ(1) = 1 ...

  3. GMT5 install

    there are two imporant modules called gshhg and dcw when installing GMT5; try to state the locations ...

  4. Introduction to Unity UI

    https://www.raywenderlich.com/795-introduction-to-unity-ui-part-1 https://www.raywenderlich.com/794- ...

  5. 20175223 《Java程序设计》 第八周学习总结

    目录 教材学习内容总结 教材学习中的问题和解决过程 1. StarUML 的使用方法. 2. 在IDEA中以TDD的方式对String类和Arrays类进行学习 代码调试中的问题和解决过程 1. 问题 ...

  6. java版数据结构与算法 (1综述)

    很大部分转载自 https://blog.csdn.net/singit/article/details/54898316 数据的逻辑结构:反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系指数据元 ...

  7. CentOS7的网卡重启方法

    1.centos6的网卡重启方法:service network restartcentos7的网卡重启方法:systemctl restart network 2.DNS配置文件:cat /etc/ ...

  8. 利用js 生成不同li标签的点击事件

    <ul> <li>click me</li> <li>你好啊2</li> <li>你好啊3</li> <li& ...

  9. Eclipse is running in a JRE, but a JDK is required Some Maven plugins may not work when importing projects or updating source folders.

    安装Maven后每次启动出现警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not wor ...

  10. WEB学习笔记12-高可读性的HTML之如何正确设计表单

    网站中的用户登录.注册.用户调查等都是通过页面中的表单提交到网站服务器的.假设要实现让用户设置个人信息的一个表单. 该表格为两栏布局,第一栏中的文本左对齐,第二栏的表单控件右对齐,构成了最容易实现的表 ...