.loc[ ]与.iloc[ ]用法详解

目录

pandas.DataFrame.loc    pandas.DataFrame.iloc

注意

通过.loc[ ]或者.iloc[ ]获取数据时需要注意的是,使用[[ ]]返回值是DataFrame,而使用[]返回值则是pandas.core.series.Series

①pandas.DataFrame.loc

.loc[ ]用于通过行或列的标签或者boolean数组来访问DataFrame中的一组行和列。(可以获取值,改变值) 具体的使用方法在下方通过代码实现来理解。

获取数据更新数据进阶教程(多标签)

举个栗子

首先创建数据(df)

>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],

...      index=['cobra', 'viper', 'sidewinder'],

...      columns=['max_speed', 'shield'])

>>> df

max_speed  shield

cobra               1       2

viper               4       5

sidewinder          7       8

获取数据

根据行标签获取DataFrame

>>> df.loc[['viper', 'sidewinder']]

max_speed  shield

viper               4       5

sidewinder          7       8

根据行和列标签获取值(在此为numpy.int64)

>>> df.loc['cobra', 'shield']

2

使用切片

>>> df.loc['cobra':'viper', 'max_speed']

cobra    1

viper    4

Name: max_speed, dtype: int64

注意

此处的切片与通常的python切片不同,它包含了起始和结束

根据boolean数组获取行(True表示获取行,False表示不获取)

>>> df.loc[[False, False, True]]

max_speed  shield

sidewinder          7       8

或者使用返回值为boolean的语句作为参数

>>> df.loc[df['shield'] > 6]

max_speed  shield

sidewinder          7       8

也可以利用lambda关键字

>>> df.loc[lambda df: df['shield'] == 8]

max_speed  shield

sidewinder          7       8

更新数据

设置整行的值

>>> df.loc['cobra'] = 10

>>> df

max_speed  shield

cobra              10      10

viper               4      50

sidewinder          7      50

设置整列的值

>>> df.loc[:, 'max_speed'] = 30

>>> df

max_speed  shield

cobra              30      10

viper              30      50

sidewinder         30      50

根据行和列设置值

>>> df.loc[['viper', 'sidewinder'], ['shield']] = 50

>>> df

max_speed  shield

cobra               1       2

viper               4      50

sidewinder          7      50

进阶教程(多标签)

创建多标签DataFrame

>>> tuples = [

...    ('cobra', 'mark i'), ('cobra', 'mark ... ii'),

...    ('sidewinder', 'mark i'), ('sidewinder', 'mark ii'),

...    ('viper', 'mark ii'), ('viper', 'mark iii')

... ]

>>> index = pd.MultiIndex.from_tuples(tuples)

>>> values = [[12, 2], [0, 4], [10, 20],

...         [1, 4], [7, 1], [16, 36]]

>>> df = pd.DataFrame(values, columns=['max_speed', 'shield'], index=index)

>>> df

max_speed  shield

cobra      mark i           12       2

mark ii           0       4

sidewinder mark i           10      20

mark ii           1       4

viper      mark ii           7       1

mark iii         16      36

单标签获取

>>> df.loc['cobra']

max_speed  shield

mark i          12       2

mark ii          0       4

多标签获取

>>> df.loc[('cobra', 'mark ii')]

max_speed    0

shield       4

Name: (cobra, mark ii), dtype: int64

切片形式

>>> df.loc[('cobra', 'mark i'):'viper']

max_speed  shield

cobra      mark i           12       2

mark ii           0       4

sidewinder mark i           10      20

mark ii           1       4

viper      mark ii           7       1

mark iii         16      36

>>> df.loc[('cobra', 'mark i'):('viper', 'mark ii')]

max_speed  shield

cobra      mark i          12       2

mark ii          0       4

sidewinder mark i          10      20

mark ii          1       4

viper      mark ii          7       1

②pandas.DataFrame.iloc

.iloc[ ]用于通过行或列的索引(索引从0到len-1)或者boolean数组来访问DataFrame中的一组行和列。 具体的使用方法在下方通过代码实现来理解。

获取数据更新数据(与.loc[ ]相似,不再赘述)

举个栗子

创建数据(df)

>>> mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},

...           {'a': 100, 'b': 200, 'c': 300, 'd': 400},

...           {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]

>>> df = pd.DataFrame(mydict)

>>> df

a     b     c     d

0     1     2     3     4

1   100   200   300   400

2  1000  2000  3000  4000

获取数据

行索引获取行

>>> df.iloc[0]

a    1

b    2

c    3

d    4

Name: 0, dtype: int64

切片获取

>>> df.iloc[:3]

a     b     c     d

0     1     2     3     4

1   100   200   300   400

2  1000  2000  3000  4000

根据boolean数组获取

>>> df.iloc[[True, False, True]]

a     b     c     d

0     1     2     3     4

2  1000  2000  3000  4000

根据行和列索引获取值

>>> df.iloc[0, 1]

2

获取多行多列

>>> df.iloc[[0, 2], [1, 3]]

b     d

0     2     4

2  2000  4000

python iloc用法_pandas.DataFrame.loc和.iloc用法详解相关推荐

  1. python字典转dataframe_python DataFrame转dict字典过程详解

    python DataFrame转dict字典过程详解 这篇文章主要介绍了python DataFrame转dict字典过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习 ...

  2. python iloc函数_pandas入门——loc与iloc函数

    oc与iloc函数 loc函数 import pandas as pd import numpy # 导入数据 df = pd.read_csv(filepath_or_buffer="D: ...

  3. python中iloc的详细用法_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里的属性是不定的,空值默认为 ...

  4. python iloc函数_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里的属性是不定的,空值默认为 ...

  5. python数据挖掘课程】二十一.朴素贝叶斯分类器详解及中文文本舆情分析

    #2018-04-06 13:52:30 April Friday the 14 week, the 096 day SZ SSMR python数据挖掘课程]二十一.朴素贝叶斯分类器详解及中文文本舆 ...

  6. python 自动化发送邮件_Python自动化必备发送邮件报告脚本详解

    #!/usr/bin/python3 # -*- coding:UTF-8 -*- import smtplib #smtplib库主要用来连接第三方smtp库,用来发邮件 from email.mi ...

  7. python二元多次函数拟合_对python实现二维函数高次拟合的示例详解

    在参加"数据挖掘"比赛中遇到了关于函数高次拟合的问题,然后就整理了一下源码,以便后期的学习与改进. 在本次"数据挖掘"比赛中感觉收获最大的还是对于神经网络的认识 ...

  8. python代码案例详解-我用Python抓取了7000 多本电子书案例详解

    安装 安装很简单,只要执行: pip install requests-html 就可以了. 分析页面结构 通过浏览器审查元素可以发现这个电子书网站是用 WordPress 搭建的,首页列表元素很简单 ...

  9. python 命令-python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...

最新文章

  1. fastdfs java client_fastdfs-client-java操作fastdfs5.0.4
  2. 【自考】信息系统开发与管理(二)——章节详读
  3. 绝地求生现在服务器稳定吗,吃鸡服务器不稳定?《绝地求生》国服宣布将首次使用超性能服务器...
  4. hdu-acm steps FatMouse's Speed
  5. mac linux工具下载,xshell mac版
  6. centos7添加运行终端快键键
  7. 小猫的java基础知识点汇总(下)
  8. 学Python的女生好不好找工作?
  9. [面试]排列组合与概率计算(一)
  10. Android 编程下 ListView 和 CheckBox 混合使用时的常见问题
  11. 错误一例:expected expression before } token
  12. 面试技能之软知识(HR面试问题回答)
  13. python目标识别_10行Python代码实现目标检测
  14. yum故障之There are no enabled repos.
  15. C语言学习(2):enum枚举时出现的问题:
  16. 微前端在小米 CRM 系统的实践
  17. DaVinci:Camera Raw(CinemaDNG)
  18. 计算广告(1)---一些概念
  19. 2021计通网项目一问题记录
  20. 微型计算机vag是指,《微型计算机复习题》.docx

热门文章

  1. linux 笔记本 显卡驱动下载地址,linux笔记本上安装了双显卡驱动(intel+nvidia)
  2. python爬虫实现股票数据存储_Python 爬虫 | 股票数据的获取
  3. 表单提交验证,手机号码验证
  4. 小程序云开发实现登录与注册(附源码)
  5. bert获得词向量_BERT中的词向量指南
  6. 在JEECG-boot代码生成的基础上修改list页面(结合自定义的组件)
  7. ELK-Kibana
  8. python 切片用法_Python切片用法实例教程
  9. Windows安装Git
  10. 【无标题】计算重量之和