[educoder]Pandas安装与对象使用 初级


Pandas是在NumPy基础上建立的新程序库,提供了一种高效的 DataFrame数据结构。DataFrame本质上是一种带行标签和列标签、支持相同类型数据和缺失值的多维数组。Pandas不仅为带各种标签的数据提供了便利的存储界面,还实现了许多强大的操作,这些操作对数据库框架和电子表格程序的用户来说非常熟悉。

本实训主要介绍Pandas的安装和使用以及Pandas对象。

第1关:安装并使用Pandas

编程要求
本关的编程任务是补全右侧编辑器中的demo()函数,要求通过__version__查看Pandas当前版本号。

具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

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

测试输入:
无测试输入
预期输出:
0.23.0

开始你的任务吧,祝你成功!

import pandas as pd

def demo():
    #将pandas的版本号赋值给version_number
    #********** Begin **********#
    version_number = pd.__version__
    #********** End **********#
    return  version_number

第2关:Pandas的Series对象

编程要求
本关的编程任务是补全右侧上部代码编辑区内的相应代码,创建一个Series对象,并输出。

具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

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

测试输入中的第一行为Series对象中的列索引,第二行为Series对象中每一行的值。

测试输入:
a,b,c,d,e,f
6,5,4,2,1,3

预期输出:

a 6
b 5
c 4
d 2
e 1
f 3
dtype: object
开始你的任务吧,祝你成功!

import pandas as pd
import numpy as np
a = input()   # 输入的是一个字符串,详细数据可查看测试集
b = input()

# 使用任意方法创建一个Series对象,并输出
#********* Begin **********#
t = pd.Series(np.array(b.split(',')), index=np.array(a.split(',')))
print(t)

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

第3关:Pandas的DataFrame对象

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

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

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

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

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

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

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

测试输入:
1,2,3,4,6
a,aa,aaa,aaaa,aaaaa
b,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
import numpy as np
index = input()        # 输入的是一个字符串,用于列索引,详细数据请查看测试集
value1 = input()     # DataFrame对象的第一列数据
value2 = input()     # DataFrame对象的第二列数据

# 将数据转换为Series对象  然后通过Series对象创建一个DataFrame对象,然后输出
#********** Begin **********#
d1 = {'first': pd.Series(np.array(value1.split(',')), index=np.array(index.split(','))),
      'second': pd.Series(np.array(value2.split(',')), index=np.array(index.split(',')))}
df1 = pd.DataFrame(d1)
print(df1)
#********** End **********#

# 将数据转换为字典,然后通过字典创建一个DataFrame对象,然后输出
#********** Begin **********#
d2 = {'first': np.array(value1.split(',')), 'second': np.array(value2.split(','))}
df2 = pd.DataFrame(d2,index=np.array(index.split(',')))
print(df2)



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

第4关:Pandas的Index对象

编程要求
本关的编程任务是补全右侧上部代码编辑区内的相应代码,要求获取两个Series对象的index对象,然后求交集与并集,并输出。

具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

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

测试输入:
无测试输入
预期输出:

交集:Int64Index([1, 3, 4], dtype=‘int64’)
并集:Int64Index([1, 2, 3, 4, 5, 6, 22, 66], dtype=‘int64’)
开始你的任务吧,祝你成功!

import pandas as pd


def demo4():
    data1 = pd.Series([1,2,3,4,66])
    data2 = pd.Series([1,22,3,4,5,6])
    # 获取两个Series对象的index对象,然后求交集与并集,并输出
    #********** Begin **********#
    a= pd.Index(data1)
    b= pd.Index(data2)
    print("交集:{}".format(a & b))
    print("并集:{}".format(a | b))


    #********** Begin **********#
    return


  1. Pandas数据取值与选择
    本节主要介绍Pandas的Series和DataFrame对象相似的数据获取与调整操作。如果学习过之前的Numpy操作模式,就会非常熟悉Pandas的操作模式。

第1关:Series数据选择

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

添加一行数据,时间戳2019-01-29值为320;
获取2019-01-04号之后的数据(包含该日期);
最后筛选值大于100的数据,得到以下目标Series对象;
2019-01-06 981
2019-01-11 647
2019-01-17 198
2019-01-20 1698
2019-01-21 7496
2019-01-24 8201
2019-01-29 320
dtype: int64
具体要求请参见后续测试样例。
提示:使用to_datetime()函数可以将字符串转换成时间戳。

pd.to_datetime(‘2019-01-01’)

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

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

测试输入:

np.array([4,9,4,3,1,981,13,6,46,1,647,64,31,46,46,13,198,76,13,1698,7496,2,100,8201,30])
预期输出:

2019-01-06 981
2019-01-11 647
2019-01-17 198
2019-01-20 1698
2019-01-21 7496
2019-01-24 8201
2019-01-29 320
dtype: int64
开始你的任务吧,祝你成功!

import pandas as pd
import numpy as np

arr = input()
dates = pd.date_range('20190101', periods=25) # 生成时间序列
df = pd.Series(eval(arr),index=dates)
#完成编程要求,并输出结果
#********** Begin **********#
df[pd.to_datetime('2019-01-29')]=320
a = df['2019-01-04'::]
print(a[a>100])
#********** End **********

第2关:DataFrame数据选择方法

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

完成下列要求。初始DataFrame如图所示:

根据相关知识介绍的取值方法将初始DataFrame转换成下图所示DataFrame,并输出:
Florida Washington
deaths 616 62
deserters 2 31
readiness 3 3
regiment Nighthawks Dragoons
size 1400 849
veterans 26 48
具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

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

测试输入:
无测试输入

预期输出:

          Florida Washington  

deaths 616 62
deserters 2 31
readiness 3 3
regiment Nighthawks Dragoons
size 1400 849
veterans 26 48
开始你的任务吧,祝你成功!

import pandas as pd


def demo(raw_data,origin):
    df = pd.DataFrame(raw_data,index=origin)
    #转换成编程要求所示DataFrame, 并输出
    #********** Begin **********#
    print(df.loc[['Florida','Washington'],'deaths':].T)

    #********** End **********#
    return
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值