当前位置:首页 > Python技术文章 > python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)

python选取特定列 如何使用pandas的 iloc,loc,icol(列切片及行切片)

  • 发布时间:
  • 作者:码农之家原创
  • 点击:142

这篇文章主要知识点是关于python、pandas、iloc、loc、icol、python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下相关资源

Python数据科学手册

这本书是以数据深度需求为中心的科学、研究以及针对计算和统计方法的参考书,讲述了个Python数据科学中的重点工具包、Matplotlib、NumPy等对象

查看详情

python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)

df是一个dataframe,列名为A B C D

具体值如下:

A B C D
0 ss 小红 8
1 aa 小明 d
4 f f
6 ak 小紫 7

dataframe里的属性是不定的,空值默认为NA。

一、选取标签为A和C的列,并且选完类型还是dataframe

df = df.loc[:, ['A', 'C']]
df = df.iloc[:, [0, 2]]

二、选取标签为C并且只取前两行,选完类型还是dataframe

df = df.loc[0:2, ['A', 'C']] 
df = df.iloc[0:2, [0, 2]] 

聪明的朋友已经看出iloc和loc的不同了:loc是根据dataframe的具体标签选取列,而iloc是根据标签所在的位置,从0开始计数。

","前面的":"表示选取整列,第二个示例中的的0:2表示选取第0行到第二行,这里的0:2相当于[0,2)前闭后开,2是不在范围之内的。

需要注意的是,如果是df = df.loc[0:2, ['A', 'C']]或者df = df.loc[0:2, ['A', 'C']],切片之后类型依旧是dataframe,不能直接进行

加减乘除等操作的,比如dataframe的一列是数学成绩(shuxue),另一列为语文成绩(yuwen),现在需要求两门课程的总和。可以使用df['shuxue'] + df['yuwen'](选取完之后类型为series)来获得总分,而不能使用df.iloc[:,[2]]+df.iloc[:,[1]]或df.iloc[:,['shuxue']]+df.iloc[:,['yuwen']],这会产生错误结果。

还有一种方式是使用df.icol(i)来选取列,选取完的也不是dataframe而是series,i为该列所在的位置,从0开始计数。

如果你想要选取某一行的数据,可以使用df.loc[[i]]或者df.iloc[[i]]。

以上这篇python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现

相信很多人像我一样在学习python,pandas过程中对数据的选取和修改有很大的困惑(也许是深受Matlab)的影响。。。

到今天终于完全搞清楚了!!!

先手工生出一个数据框吧

import numpy as np 
import pandas as pd 
df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc')) 

df 是这样子滴

那么这三种选取数据的方式该怎么选择呢?

一、当每列已有column name时,用 df [ 'a' ] 就能选取出一整列数据。如果你知道column names 和index,且两者都很好输入,可以选择 .loc

df.loc[0, 'a'] 
df.loc[0:3, ['a', 'b']] 
df.loc[[1, 5], ['b', 'c']] 

由于这边我们没有命名index,所以是DataFrame自动赋予的,为数字0-9

二、如果我们嫌column name太长了,输入不方便,有或者index是一列时间序列,更不好输入,那就可以选择 .iloc了。这边的 i 我觉得代表index,比较好记点。

df.iloc[1,1] 
df.iloc[0:3, [0,1]] 
df.iloc[[0, 3, 5], 0:2] 

iloc 使得我们可以对column使用slice(切片)的方法对数据进行选取。

三、.ix 的功能就更强大了,它允许我们混合使用下标和名称进行选取。 可以说它涵盖了前面所有的用法。基本上把前面的都换成df.ix 都能成功,但是有一点,就是

df.ix [ [ ..1.. ], [..2..] ], 1框内必须统一,必须同时是下标或者名称,2框也一样。 BTW, 1框是用来指定row,2框是指定column, 当然上面所有的取数方法都是这个规则。

这就是我目前的领悟吧。

以上这篇python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于Python的全部知识点内容总结,大家还可以在下方相关文章里找到python求最大值最小值的实、 Python工具整理推荐、 Python调用C# Com dll组件的方、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:python实现在cmd窗口显示彩色文字的实例方法

下一篇:Python3列表、数组、矩阵的相互转换方法

展开 +

收起 -

python选取特定列 相关内容
Python3.5 Pandas模块中Series用法详解

这篇文章主要介绍了Python3.5 Pandas模块之Series用法,结合实例形式分析了Python3.5中Pandas模块的Series结构原理、创建、获取、运算等相关操作技巧与注意事项,需要的朋友可以参考下

查看详情
Python pandas模块输出每行中间省略号问题及解决方法

这篇文章主要介绍Python pandas模块输出每行中间省略号问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

查看详情
Python Pandas分组聚合的实例讲解

这篇文章主要介绍了Python Pandas分组聚合的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

查看详情
树莓派Python编程入门与实战

《树莓派Python编程入门与实战》经典系列 直观 循序渐进的树莓派Python编程学习教程 强调实践教学 以示例引导读者完成常见的任务。

查看详情
Python黑客攻防入门

本书讲述了Python黑客攻防的基础知识、各种黑客攻击技术、黑客攻击学习方法,介绍各种黑客攻击技术、计算机基础知识、应用程序黑客攻击、Web黑客攻击、网络黑客攻击等

查看详情
跟老齐学Python:轻松入门

本书是数十套结合课件的Python教学代码,本书是Python语言的入门读物,旨在引导初学者能够在轻松的环境中,掌握Python的基础知识

查看详情
机器学习系统设计:Python语言实现

本书是一本设计高效机器学习系统的详实指南,介绍机器学习系统设计的整个过程,相关的Python库,并在各个知识环节中都给出了Python示例,欢迎下载

查看详情
Python数据分析:基于Plotly的动态可视化绘图 查看详情
Python极客项目编程

Python极客项目编程通过14个有趣的项目,帮助和鼓励读者探索Python编程的世界,展示如何用Python来解决各种实际问题,以及如何使用一些流行的Python库,帮助读者掌握实用的Python编程技能。

查看详情
Python真好玩:教孩子学编程

青少年编程新手入门书根据Python3撰写的编程设计新手入门书中小学校程序编写自学教程学习计算机思维模式搭建程序编写逻辑思维和小孩一块儿学习编程趣学Python程序编写真好玩 这书撰写的目

查看详情
python选取特定列 学习笔记
网友NO.788600

python pandas库中DataFrame对行和列的操作实例讲解

用pandas中的DataFrame时选取行或列: import numpy as npimport pandas as pdfrom 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, #即末端是包含的 data.irow(0) #取data的第一行data.icol(0) #取data的第一列data.head() #返回data的前……

网友NO.428667

python pandas写入excel文件的方法示例

pandas读取、写入csv数据非常方便,但是有时希望通过excel画个简单的图表看一下数据质量、变化趋势并保存,这时候csv格式的数据就略显不便,因此尝试直接将数据写入excel文件。 pandas可以写入一个或者工作簿,两种方法介绍如下: 1、如果是将整个DafaFrame写入excel,则调用to_excel()方法即可实现,示例代码如下: # output为要保存的Dataframeoutput.to_excel('保存路径 + 文件名.xlsx') 2、有多个数据需要写入多个excel的工作簿,这时需要调用通过ExcelWriter()方法打开一个已经存在的excel表格作为writer,然后通过to_excel()方法将需要保存的数据逐个写入excel,最后关闭writer。 示例代码如下: # 创建一个空的excel文件nan_excle = pd.DataFrame()nan_excel.to_excel(path + filename)# 打开excelwriter = pd.ExcelWriter(path + filename)#sheets是要写入的excel工作簿名称列表for sheet in sheets: output.to_excel(writer,……

网友NO.940384

使用Python Pandas处理亿级数据的方法

在数据分析领域,最热门的莫过于Python和R语言,此前有一篇文章《别老扯什么Hadoop了,你的数据根本不够大》指出:只有在超过5TB数据量的规模下,Hadoop才是一个合理的技术选择。这次拿到近亿条日志数据,千万级数据已经是关系型数据库的查询分析瓶颈,之前使用过Hadoop对大量文本进行分类,这次决定采用Python来处理数据: 硬件环境 CPU:3.5 GHz Intel Core i7 内存:32 GB HDDR 3 1600 MHz 硬盘:3 TB Fusion Drive 数据分析工具 Python:2.7.6 Pandas:0.15.0 IPython notebook:2.0.0 源数据如下表所示: Table Size Desc ServiceLogs 98,706,832 rows x 14 columns 8.77 GB 交易日志数据,每个交易会话可以有多条交易 ServiceCodes 286 rows × 8 columns 20 KB 交易分类的字典表 数据读取 启动IPython notebook,加载pylab环境: ipython notebook --pylab=inline Pandas提供了IO工具可以将大文件分块读取,测试了一下性能,完……

网友NO.999645

python中pandas.DataFrame排除特定行方法示例

前言 大家在使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,关于python中pandas.DataFrame的基本操作,大家可以查看这篇文章。 pandas.DataFrame排除特定行 如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用 isin() 方法,将需要的行的值以列表方式传入,还可以传入字典,指定列进行筛选。 但是如果我们只想要所有内容中不包含特定行的内容,却并没有一个 isnotin() 方法。我今天的工作就遇到了这样的需求,经常查找之后,发现只能换种方式使用 isin() 来实现这个需求。 示例如下: In [3]: df = pd.DataFrame([['GD', 'GX', 'FJ'], ['SD', 'SX', 'BJ'], ['HN', 'HB' ...: , 'AH'], ['HEN', 'HEN', 'HLJ'], ['SH', 'TJ', 'CQ']], columns=['p1', 'p2 ...: ', 'p3'])In [4]: dfOut[4]: p1 p2 p30 GD GX FJ1 SD SX BJ2 HN HB AH3 HEN HEN HLJ4 SH TJ CQ 如果只想要p1为GD和HN的两行,可以这么做:……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757