Educoder python pandas介绍 第4关:通过标签从DataFrame中选择行


任务描述

本关任务:用标签从DataFrame中选择行。

相关知识

既然我们已经学习了如何通过标签选择列,让我们学习如何使用索引(index)轴的标签选择行:

我们使用与选择列相同的语法从dataframe中选择行:


 
  1. df.loc[row_label, column_label]

我们将再次使用选择的一部分数据,它存储在变量f500_selection中:

选择一行


 
  1. single_row = f500_selection.loc["Sinopec Group"]
  2. print(type(single_row))
  3. print(single_row)

输出结果:


 
  1. class 'pandas.core.series.Series'
  2.  
  3. rank 3
  4. revenues 267518
  5. profits 1257.9
  6. country China
  7. Name: Sinopec Group, dtype: object

注意,返回的对象是一个series,因为它是一维的。由于这个series必须存储整数、浮点数和字符串值,所以pandas使用object数据类型,因为没有一种数字类型可以满足所有值。

选择一些行


 
  1. list_rows = f500_selection.loc[["Toyota Motor", "Walmart"]]
  2. print(type(list_rows))
  3. print(list_rows)

输出结果:


 
  1. class 'pandas.core.frame.DataFrame'
  2.  
  3. rank revenues profits country
  4. Toyota Motor 5 254694 16899.3 Japan
  5. Walmart 1 485873 13643.0 USA

用标签切片选择

对于使用切片进行选择,我们可以使用下面的快捷方式。这就是我们不能对列使用这个快捷方式的原因——因为它是为行保留的:


 
  1. slice_rows = f500_selection["State Grid":"Toyota Motor"]
  2. print(type(slice_rows))
  3. print(slice_rows)

输出结果:


 
  1. class 'pandas.core.frame.DataFrame'
  2.  
  3. rank revenues profits country
  4. State Grid 2 315199 9571.3 China
  5. Sinopec Group 3 267518 1257.9 China
  6. China National Petroleum 4 262573 1867.5 China
  7. Toyota Motor 5 254694 16899.3 Japan

Series vs Dataframes

在这两关中,当我们从f500dataframe中选择数据时,我们创建了series对象和dataframe对象。现在让我们回顾一下:

编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End 区域内进行代码补充,完成以下需求:

  • f500中选择数据:

    • 创建一个新的变量toyota

      • 行是Toyota Motor

      • 所有列。

    • 创建一个新变量drink_companies

      • 行索引为Anheuser-Busch InBevCoca-ColaHeineken Holding,按顺序排列。

      • 所有列。

    • 创建一个新的变量middle_companies

      • 行索引从Tata MotorsNationwide(包括Nationwide);

      • rank到包括country的所有列。。

import pandas as pd
f500 = pd.read_csv('f500.csv',index_col=0)
f500.index.name = None
# 请在此添加代码
#********** Begin **********#
toyota = f500.loc['Toyota Motor']
drink_companies = f500.loc[["Anheuser-Busch InBev", "Coca-Cola", "Heineken Holding"]]
middle_companies = f500.loc["Tata Motors":"Nationwide", "rank":"country"]
print(toyota)
print(drink_companies)
print(middle_companies)
#********** End **********#

 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值