pandas.DataFrame.loc[] 是数据框的属性,通过指定标签或布尔数组来访问数据框的一组行和列。pandas.DataFrame是带有轴标签的二维表数据结构,如列和行。从数据框选择列结果是新的数据框,它仅包括特性从原数据框中选择的列。

pandas.DataFrame.loc 的关键说明:

  • loc用于通过标签选择或过滤行和列
  • 当选择行时,选哟提供索引标签
  • 也提供了其他方法选择行和列,如:范围、交替选择

pandas.DataFrame.loc[] 语法及用法

loc用于通过数据框的名称(标签)选择行列,是数据框最常用的属性。数据框的主要优点是容易使用,当你使用pandas.DataFrame.loc[] 属性去选择或过滤数据框时,你会认同这个优势。

df.loc[start:stop:step, start:stop:step]

第一个start:stop:step用于通过名称或标签选择行,后面的用于通过名称或标签选择列。

  • start 是行列标签的名称
  • stop 是最后一个取用的行列标签的名称
  • step 是每次抽取后索引前进数量

关键点说明:

  • 不指定start行列,loc[]从起始点开始
  • 不指定stop,loc[]从开始标签起选择所有行列
  • 同时提供start和stop,选择两种之间的所有行列

下面创建数据框,并学习如何使用loc[]。

import pandas as pd
technologies = {'Courses':["Spark","PySpark","Hadoop","Python","pandas"],'Fee' :[20000,25000,26000,22000,24000],'Duration':['30day','40days','35days','40days','60days'],'Discount':[1000,2300,1200,2500,2000]}
index_labels=['r1','r2','r3','r4','r5']
df = pd.DataFrame(technologies,index=index_labels)
print(df)# Outputs
#r1    Spark  20000    30day      1000
#r2  PySpark  25000   40days      2300
#r3   Hadoop  26000   35days      1200
#r4   Python  22000   40days      2500
#r5   pandas  24000   60days      2000

loc示例

下面通过几个实例展示如何使用loc.

通过标签选择单行/列

loc可以通过标签选择行、列,也支持选择多行、列,即两行之间的记录,两列之间列。下面示例通过标签选择行列:

# 选择第一行的所有列
print(df.loc['r1', :])# Courses     Spark
# Fee         20000
# Duration    30day
# Discount     1000
# Name: r1, dtype: object# 选择所有行的Courses列
print(df.loc[:, "Courses"])#Outputs
#    Courses
#r1    Spark
#r2  PySpark
#r3   Hadoop
#r4   Python
#r5   pandas

选择多行/列


下面示例使用loc属性通过标签选择多行/列:# 通过标签选择多行
print(df.loc[['r2','r3']])# Outputs
#    Courses    Fee Duration  Discount
#r2  PySpark  25000   40days      2300
#r3   Hadoop  26000   35days      1200# 通过标签选择多列
print(df.loc[:, ["Courses","Fee","Discount"]])# Outputs
#    Courses    Fee  Discount
#r1    Spark  20000      1000
#r2  PySpark  25000      2300
#r3   Hadoop  26000      1200
#r4   Python  22000      2500
#r5   pandas  24000      2000

范围选择

loc支持范围选择,指定两个标签,返回包括两者之间的所有行或列:

# 指定俩个行标签,返回包括两者之间的行记录
print(df.loc['r1':'r4'])# 输出结果
#    Courses    Fee Duration  Discount
#r1    Spark  20000    30day      1000
#r2  PySpark  25000   40days      2300
#r3   Hadoop  26000   35days      1200
#r4   Python  22000   40days      2500# 选择两个列之间的所有列
print(df.loc[:,'Fee':'Discount'])# 输出结果
#      Fee Duration  Discount
#r1  20000    30day      1000
#r2  25000   40days      2300
#r3  26000   35days      1200
#r4  22000   40days      2500
#r5  24000   60days      2000

交替选择

与范围类型,loc也支持交替选择:


# 按行交替选择,每两行选一次
print(df.loc['r1':'r4':2])# 输出结果:
#   Courses    Fee Duration  Discount
#r1   Spark  20000    30day      1000
#r3  Hadoop  26000   35days      1200# 交替选择列
print(df.loc[:,'Fee':'Discount':2])# 输出结果:
#      Fee  Discount
#r1  20000      1000
#r2  25000      2300
#r3  26000      1200
#r4  22000      2500
#r5  24000      2000

需要特别说明的是step还支持负数,表示逆序选择:

import pandas as pdprint(df.loc[::-1, :])#     Courses    Fee Duration  Discount
# r5   pandas  24000   60days      2000
# r4   Python  22000   40days      2500
# r3   Hadoop  26000   35days      1200
# r2  PySpark  25000   40days      2300
# r1    Spark  20000    30day      1000

我们看到结果正好逆序输出,读者也可以尝试修改-1为其他负数理解反向交替选择的机理。

条件选择

根据条件选择:

# 使用条件,选择fee列大于24000的记录
print(df.loc[df['Fee'] >= 24000])# 输出结果
#    Courses    Fee Duration  Discount
#r2  PySpark  25000   40days      2300
#r3   Hadoop  26000   35days      1200
#r5   pandas  24000   60days      2000

总结

本文学习了pandas数据框的loc语法及其用法,并通过示例展示了如何选择/过滤行列数据。

pandas数据框loc属性语法及示例相关推荐

  1. pandas数据框,统计某列或者某行数据元素的个数

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/sinat_38893241/artic ...

  2. Pandas数据分析14——pandas数据框的多层索引

    参考书目:<深入浅出Pandas:利用Python进行数据处理与分析> pandas数据框针对高维数据,也有多层索引的办法去应对.多层数据一般长这个样子 可以看到AB两大列,下面又有xy两 ...

  3. 在pandas数据框中选择多个列

    本文翻译自:Selecting multiple columns in a pandas dataframe I have data in different columns but I don't ...

  4. xlsxwriter写行合并_使用xlsxwriter将pandas数据框写入excel并包含“write-rich”字符串格式...

    以下是可复制的,并产生所需的输出. import xlsxwriter, pandas as pd workbook = xlsxwriter.Workbook('pandas_with_rich_s ...

  5. Pandas 数据框增、删、改、查、去重、抽样基本操作

    总括 pandas的索引函数主要有三种: loc 标签索引,行和列的名称 iloc 整型索引(绝对位置索引),绝对意义上的几行几列,起始索引为0 ix 是 iloc 和 loc的合体 at是loc的快 ...

  6. Python:在Pandas数据框中查找缺失值

    How to find Missing values in a data frame using Python/Pandas 如何使用Python / Pandas查找数据框中的缺失值 介绍: (In ...

  7. python 并列条形图_python – 来自两个pandas数据框的分组条形图

    我有两个包含不同值但结构相同的数据框: df1 = 0 1 2 3 4 D 0.003073 0.014888 0.155815 0.826224 NaN E 0.000568 0.000435 0. ...

  8. python两个字符串数据可以复制吗_无论如何,是否要将Python pandas数据框中的单个数据中的数据复制到字符串或列表中以进行进一步处理?...

    使用示例数据.请注意,由于复制和粘贴选项卡占用空格(因此使用sep ='\ s +',iso'\ t')并且我已将数据的第一行设置为列名(不使用header = None).可以使用join将一列连接 ...

  9. python保存数据框_python – 如何将numpy数组作为对象存储在pandas数据框中?

    我有一系列图像,存储在CVS文件中,每个图像一个字符串,该字符串是9216空格分隔整数的列表.我有一个函数将其转换为96×96 numpy数组. 我希望将这个numpy数组存储在我的数据帧的一列而不是 ...

最新文章

  1. ETC核心技术团队CTO空降上海,引领高校区块链技术风潮
  2. 搭建android开发环境注意事项1
  3. windows mysql 自动备份的几种方法
  4. C++中的内联函数inline总结
  5. 【Python】学习笔记总结3(Python文件操作)
  6. 建立和操作 JDOM 文档
  7. YII2操作mongodb笔记
  8. Linux inode 详解
  9. Spark之RDD实战篇
  10. python之路-基础篇-002
  11. 比较器与滞回比较器的原理及应用
  12. vmware 官方下载
  13. STM3库文件 hal_uart.c的使用
  14. win10系统,字体及软件内容特别小(亲试有效)
  15. C语言equivalent用法,C语言相当于'setw'函数
  16. 计算机上面的用户帐户怎么删除,怎么删除用户帐户的教程详解【图解】
  17. php超链接打不开了,excel超链接无法打开怎么办
  18. 关于牛顿-欧拉法的外推和内推的理解
  19. SML-Abridgelab
  20. 用户画像打标签之RFM客户价值分析

热门文章

  1. DC-DC2.6V~60V升压恒流大功率LED 照明驱动IC
  2. 北美贾跃亭判了!靠一台道具车狂奔上市,340亿美元巅峰市值一度超越福特
  3. 投资探索未来,超级独角兽的梦想,从CTO到CEO
  4. Effective Java 28 Use bounded wildcards to increase API flexibility
  5. 求问,python爬取图片,都损坏
  6. Jackson丨艾美捷山羊抗豚鼠IgG片段(H+L)说明书
  7. svn上下载不数据下不下来时,可以使用这样的办法
  8. Docker创建FTP服务器
  9. 高新区培育申报瞪羚企业
  10. 最完美的毁尸灭迹:皮箱连环弃尸案始末