栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第3关:Pandas的DataFrame对象

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第3关:Pandas的DataFrame对象

任务描述

本关任务:分别使用Series对象和字典类型数据创建一个DataFrame对象。

相关知识

Pandas的另一个基础数据结构是DataFrame。和上一节介绍的 Series对象一样,DataFrame既可以作为一个通用型NumPy数组,也可以看作特殊的Python字典。

创建DataFrame对象

Pandas的DataFrame对象可以通过许多方式创建,这里举几个常用的例子。

  • 通过数组创建:
     
      
    1. pd.DataFrame(array, index=list0, columns=list1) #list表示一个列表
  • 通过单个Series对象创建:
     
      
    1. pd.DataFrame(Series,columns=list)
  • 通过字典列表创建:
     
      
    1. data = [{'a': i, 'b': 2 * i} for i in range(3)] pd.DataFrame(data)

    DataFrame是通用的NumPy数组

    如果将Series类比为带灵活索引的一维数组,那么DataFrame就可以看作是一种既有灵活的行索引,又有灵活列名的二维数组,你也可以把DataFrame看成是有序排列的若干Series对象。这里的“排列”指的是它们拥有共同的索引index。
     
      
    1. # 创建Series对象
    2. In: area_dict = {'California': 423967, 'Texas': 695662, 'New York': 141297, 'Florida': 170312, 'Illinois': 149995}
    3. In: population_dict = {'California': 38332521,'Texas': 26448193, 'New York': 19651127, 'Florida': 19552860, 'Illinois': 12882135}
    4. In: population = pd.Series(population_dict)
    5. In: area = pd.Series(area_dict)
    6. # 创建DataFrame对象
    7. In: states = pd.DataFrame({'population': population, 'area': area})
    8. In: states
    9. Out: area population
    10. California 423967 38332521
    11. Florida 170312 19552860
    12. Illinois 149995 12882135
    13. New York 141297 19651127
    14. Texas 695662 26448193
    和Series对象一样,DataFrame也有一个index属性可以获取索引标签。另外,DataFrame还有一个columns属性,是存放列标签的Index对象。
     
      
    1. In: states.columns
    2. Out: Index(['area', 'population'], dtype='object')

DataFrame是特殊的字典

与Series类似,我们也可以把DataFrame看成一种特殊的字典。字典是一个键映射一个值,而DataFrame是一列映射一个Series的数据。例如,通过area的列属性可以返回包含面积数据的Series对象。

 
  1. In: states['area']
  2. Out: California 423967
  3. Florida 170312
  4. Illinois 149995
  5. New York 141297
  6. Texas 695662
  7. Name: area, dtype: int64

注意:在 NumPy 的二维数组里,data[0] 返回第一行;而在 DataFrame 中,data['列名']返回与列名相匹配的那一列。

编程要求

本关的编程任务是补全右侧上部代码编辑区内的相应代码,要求实现如下功能:

  • 将数据转换为Series对象 然后通过Series对象创建一个DataFrame对象,并输出;

  • 将数据转换为字典,然后通过字典创建一个DataFrame对象,并输出;

  • 具体要求请参见后续测试样例。

请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明

平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入的第一行为列索引,第二行为第一列数据,第三行为第二列数据。

测试输入:
1,2,3,4,6
a,aa,aaa,aaaa,aaaaa
b,bb,bbb,bbbb,bbbbb
预期输出:

 
  1. first second
  2. 1 a b
  3. 2 aa bb
  4. 3 aaa bbb
  5. 4 aaaa bbbb
  6. 6 aaaaa bbbbb
  7. first second
  8. 1 a b
  9. 2 aa bb
  10. 3 aaa bbb
  11. 4 aaaa bbbb
  12. 6 aaaaa bbbbb

实现代码:

import pandas as pd

index = input()        # 输入的是一个字符串,用于列索引,详细数据请查看测试集

value1 = input()     # DataFrame对象的第一列数据

value2 = input()     # DataFrame对象的第二列数据

# 将数据转换为Series对象  然后通过Series对象创建一个DataFrame对象,然后输出

#********** Begin **********#

ps=pd.Series(value1.split(","),index=list(index.split(",")))

pp=pd.DataFrame({'first':ps,'second':value2.split(",")})

print(pp)

#********** End **********#

# 将数据转换为字典,然后通过字典创建一个DataFrame对象,然后输出

#********** Begin **********#

ps=pd.Series(value1.split(","),index=list(index.split(",")))

pp=pd.DataFrame({'first':ps,'second':value2.split(",")})

print(pp)

#********** End **********#

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号