第3关:Pandas的DataFrame对象 您所在的位置:网站首页 pandas的两种数据类型是 第3关:Pandas的DataFrame对象

第3关:Pandas的DataFrame对象

2023-09-10 02:48| 来源: 网络整理| 查看: 265

任务描述

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

相关知识

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

创建DataFrame对象

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

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

DataFrame是通用的NumPy数组

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

DataFrame是特殊的字典

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

In: states['area'] Out: California 423967 Florida 170312 Illinois 149995 New York 141297 Texas 695662 Name: area, dtype: int64

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

编程要求

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

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

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

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

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

测试说明

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

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

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

first second 1 a b 2 aa bb 3 aaa bbb 4 aaaa bbbb 6 aaaaa bbbbb first second 1 a b 2 aa bb 3 aaa bbb 4 aaaa bbbb 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 **********#



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有