Educoder python pandas介绍 第2关:Dataframe介绍


任务描述

本关任务:介绍pandas中最主要的数据结构dataframe对象。

相关知识

我们在上一关编写的代码让我们知道我们的数据有500行和16列,并且存储为了一个pandas.core.frame.DataFrame对象—或者仅仅是dataframe,主要的pandas数据结构。

回想一下,使pandas更好地处理数据的一个特性是它支持字符串列和行标签:

  • 轴值可以有字符串标签,而不仅仅是数字标签;

  • Dataframe的列可以包含多种数据类型:包括integerfloatstring

下面我们来验证一下。要查看dataframe的前几行,可以使用datafame.head()方法。默认情况下,它将返回dataframe的前五行。但是,它也接受一个可选的整数参数,该参数指定行数:


 
  1. f500.head(3)
  company rank revenues revenue_change profits assets profit_change ceo industry sector previous_rank country hq_location website years_on_global_500_list employees total_stockholder_equity
Walmart 1 485873 0.8 13643 198825 -7.2 C. Douglas McMillon General Merchandisers Retailing 1 USA “Bentonville AR” http://www.walmart.com 23 2300000 77798
State Grid 2 315199 -4.4 9571.3 489838 -6.2 Kou Wei Utilities Energy 2 China “Beijing China” http://www.sgcc.com.cn 17 926067 209456
Sinopec Group 3 267518 -9.1 1257.9 310726 -65 Wang Yupu Petroleum Refining Energy 4 China “Beijing China” http://www.sinopec.com 19 713288 106523

同样,我们可以使用datafame.tail()方法来显示dataframe的最后几行:


 
  1. f500.tail(3)
  company rank revenues revenue_change profits assets profit_change ceo industry sector previous_rank country hq_location website years_on_global_500_list employees total_stockholder_equity
Wm. Morrison Supermarkets 498 21741 -11.3 406.4 11630 20.4 David T. Potts Food and Drug Stores Food & Drug Stores 437 Britain “Bradford Britain” http://www.morrisons.com 13 77210 5111
TUI 499 21655 -5.5 1151.7 16247 195.5 Friedrich Joussen Travel Services Business Services 467 Germany “Hanover Germany” http://www.tuigroup.com 23 66779 3006
AutoNation 500 21609 3.6 430.5 10060 -2.7 Michael J. Jackson Specialty Retailers Retailing 0 USA “Fort Lauderdale FL” http://www.autonation.com 12 26000 2310

使pandas更适合处理数据的另一个特性是,dataframe可以包含不止一种数据类型:

  • 轴值可以有字符串标签,而不仅仅是数字标签;

  • Dataframe的列可以包含多种数据类型:包括integerfloatstring

我们可以使用DataFrame.dtypes属性(类似于numpyndarray.dtype属性)来返回有关每列类型的信息。让我们看一个使用从f500中挑选的一部分数据f500_selection的例子。


 
  1. print(f500_selection.dtypes)

输出结果:


 
  1. rank int64
  2. revenues int64
  3. profits float64
  4. country object
  5. dtype: object

我们可以看到三种不同的数据类型或dtype

你在NumPy已经见过float64Pandas对数字列使用NumPy中的数据类型,包括integer64。还有一种我们以前从未见过的类型object,它用于具有不适合任何其他数据类型的数据的列。它总是用于包含字符串值的列。

当我们导入数据时,pandas将尝试猜测每列的数据类型。通常,pandas在这方面做得很好,这意味着我们不需要担心每次开始处理数据时都指定数据类型。

如果我们想要概述我们的dataframe中使用的所有数据类型,以及它的形状和其他信息,我们可以使用DataFrame.info()方法。请注意,DataFrame.info()只是打印信息,而不是返回它,因此我们无法将其赋值给变量。

让我们练习使用这些方法。

编程要求

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

  1. 使用head()方法选择f500前6行。将结果赋值给f500_head

  2. 使用tail()方法选择f500最后8行。将结果赋值给f500_tail

  3. 打印变量f500_headf500_tail

  4. 使用datafame.info()方法显示关于f500dataframe的信息。

测试说明

平台会对你的代码进行运行测试,如果实际输出结果与预期结果相同,则通关;反之,则 GameOver

 

import pandas as pd
f500 = pd.read_csv('f500.csv',index_col=0)
f500.index.name = None

# 请在此添加代码,分别打印f500的前6行、后8行以及dataframe的信息
#********** Begin **********#
f500_head=f500.head(6) #使用head()方法选择f500的前6行。将结果赋值给f500_head;
f500_tail=f500.tail(8) #使用tail()方法选择f500的最后8行。将结果赋值给f500_tail;
print(f500_head) #打印变量f500_head
print(f500_tail) #打印变量f500_tail
print(f500.info()) #使用datafame.info()方法显示关于f500的dataframe的信息。
#********** End **********#

 

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

抵扣说明:

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

余额充值