任务描述

本关任务:根据相关知识,得到目标Series对象,具体要求请查看编程要求。

相关知识

Series对象与一维Numpy数组和标准Python字典在许多方面都一样。所以,Series对象的数据索引和选择模式与以上两种数据结构类似。

Series数据选择方法

Python中的字典一样,Series对象提供了键值对的映射。

  1. In: import pandas as pd
  2. In: data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd'])
  3. In: data["b"]
  4. Out: 0.5

还可以用Python字典的表达式和方法来检测键/索引和值,也可以像字典一样来修改Series对象的值。

  1. In: "a" in data
  2. Out: True
  3. In: data.keys()
  4. Out: Index(['a', 'b', 'c', 'd'], dtype='object')
  5. In: list(data.items())
  6. Out: [('a', 0.25), ('b', 0.5), ('c', 0.75), ('d', 1.0)]
  7. In: data["b"] = 0.05 # 也可以通过此方法来扩展Series
  8. In: data
  9. Out: a 0.25
  10. b 0.05
  11. c 0.75
  12. d 1.00
  13. dtype: float64

Series对象的可变性是一个非常方便的特性:Pandas在底层已经为可能发生的内存布局和数据复制自动决策,用户不需要担心这些问题。

将Series看作一堆数组

Series对象还具备和Numpy数组一样的数组数据选择功能,包括索引、掩码、花哨索引等操作,具体示例如下所示:

  • 将显示索引作为切片:

    注意:显示索引切片结果包含最后一个索引,也就是能取到“c”的值。

    1. In: data['a':'c']
    2. Out: a 0.25
    3. b 0.50
    4. c 0.75
    5. dtype: float64
  • 将隐式整数索引作为切片:

    注意:隐式索引切片结果不包含最后一个索引。

    1. In: data[0:2]
    2. Out: a 0.25
    3. b 0.50
    4. dtype: float64
  • 掩码:

    1. In: data[(data > 0.3) & (data < 0.8)]
    2. Out: b 0.50
    3. c 0.75
    4. dtype: float64
  • 花哨的索引:

    1. In: data[["a","e"]]
    2. Out: a 0.25
    3. e 1.25
    4. dtype: float64

索引器:loc和iloc

这些切片和取值操作非常混乱,假如Series对象索引序列为整数时,data[2]不会取第三行,而是取索引序列为2的那一行,也就是说会优先使用显示索引,而data[1:3]这样的切片操作会优先使用隐式索引。

  1. In: data = pd.Series(['a', 'b', 'c'], index=[1, 3, 5])
  2. In: data[1]
  3. Out: "a"
  4. In: data[0:2]
  5. Out: 1 a
  6. 3 b
  7. dtype: object

正是应为这些整数索引很容易造成混淆,所以Pandas提供了一些 索引器(indexer) 属性来作为取值的方法。它们不是Series对象的函数方法,而是暴露切片接口的属性。

  • loc属性:表示取值和切片都是显式的;

    1. In: data.loc[1]
    2. Out: "a"
    3. In: data.loc[1:3]
    4. Out: 1 a
    5. 3 b
    6. dtype: object
  • iloc属性:表示取值和切片都是Python形式的隐式索引;

    1. In: data.iloc[1]
    2. Out: "b"
    3. In: data.iloc[1:3]
    4. Out: 3 b
    5. 5 c
    6. dtype: object

Python代码的设计原则之一式“显示优于隐式”。使用lociloc 可以让代码更容易维护,可读性更高。特别是在处理整数索引的对象时,我强烈推荐使用这两种索引器。它们既可以让代码阅读和理解起来更容易,也能避免因误用索引或者切片而产生的小bug

编程要求

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

  • 添加一行数据,时间戳2019-01-29值为320
  • 获取2019-01-04号之后的数据(包含该日期);
  • 最后筛选值大于100的数据,得到以下目标Series对象;
    1. 2019-01-06 981
    2. 2019-01-11 647
    3. 2019-01-17 198
    4. 2019-01-20 1698
    5. 2019-01-21 7496
    6. 2019-01-24 8201
    7. 2019-01-29 320
    8. dtype: int64
  • 具体要求请参见后续测试样例。

提示:使用to_datetime()函数可以将字符串转换成时间戳。

pd.to_datetime('2019-01-01')

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

测试说明

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

测试输入:

  1. 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])

预期输出:

  1. 2019-01-06 981
  2. 2019-01-11 647
  3. 2019-01-17 198
  4. 2019-01-20 1698
  5. 2019-01-21 7496
  6. 2019-01-24 8201
  7. 2019-01-29 320
  8. 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 **********#

a=pd.to_datetime('2019-01-29')

b=pd.to_datetime('2019-01-04')

df[a]=320

dh=df[b:]

print(dh[dh>100])

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

第1关:Series数据选择相关推荐

  1. Case Study: 利用JS实现数据库网页的数据分页、数据选择、数据详细信息查看功能

    一.目标 该笔记的目的是引导读者借助WampServer平台和MySQL数据库,利用HTML/CSS/JS/PHP设计一个能够进行实现数据分页显示.数据选择.数据详细信息查看功能的数据库网页.该数据库 ...

  2. pandas编写自定义函数、使用apply函数应用自定义函数基于Series数据生成新的dataframe

    pandas编写自定义函数.使用apply函数应用自定义函数基于Series数据生成新的dataframe 目录 pandas编写自定义函数.使用apply函

  3. 独家 | SVP:一种用于深度学习的高效数据选择方法

    作者:Cody Coleman, Peter Bailis, and Matei Zaharia 翻译:杨毅远 校对:王琦 本文长度为1800字,建议阅读7分钟 本文为你介绍SVP方法如何在保证识别准 ...

  4. 用于弹出ModalDialog进行数据选择的控件

    修改了一下. 要另外写js函数去打开窗口还是麻烦了点, 现在打开窗口的js函数由控件生成了. 过去写的webform程序,  很多地方需要弹出一个窗口进行数据选择.  最简单的情况是选择了弹出窗口某条 ...

  5. 【若依(ruoyi)】自定义的数据选择对话框

    前言 若依(ruoyi): v4.3 mysql:5.7.31 自定义的数据选择对话框的开发说明 在"若依(ruoyi)"中,数据选择对话框可以分为2类: 树表数据的选择对话框,比 ...

  6. 【若依(ruoyi)】数据选择对话框

    前言 若依(ruoyi): v4.3 mysql:5.5.40 假设的需求 使用部门选择框,选择部门. 其它使用选择框的操作.比如:选择入库单.出库单.用户.- 分析 在"RuoYi&quo ...

  7. android开发实现选择列表,Android使用RecyclerView实现列表数据选择操作

    Android使用RecyclerView实现列表数据选择操作 发布时间:2020-08-31 17:50:13 来源:脚本之家 阅读:76 作者:迟做总比不做强 这些时间做安卓盒子项目,因为安卓电视 ...

  8. python pandas series加速原理_python pandas中对Series数据进行轴向连接的实例

    有时候我们想要的数据合并结果是数据的轴向连接,在pandas中这可以通过concat来实现.操作的对象通常是Series. Ipython中的交互代码如下: In [17]: from pandas ...

  9. python 数据分析入门教程(三)_Python数据分析入门教程(三):数据选择——AIU人工智能学院-经管之家官网!...

    https://p1.pstatp.com/large/pgc-image/a6743a84f13a4f07a7ec3e9405467c6a 在上面的代码中,iloc后的方括号中逗号之前的部分表示要获 ...

最新文章

  1. Android EditText
  2. python好学嘛-Python好学吗?Python学习路线
  3. Python 之 random模块
  4. vmware中centos6.4突然无法进入图形界面解决方法
  5. grDevices | 如何在图形中使用数学表达式作为标注文本
  6. Android开启/关闭飞行模式命令
  7. PXE网络装机和kickstart无人值守
  8. C#验证字符串是否是数字,是否包含中文,是否是邮箱格式,是否是电话格式
  9. 温度传感器的类型原理特点和应用
  10. VSCode中安装Django插件后实现html语法提示
  11. 基于生物特征密钥生成研究 ------应用于区块链领域密钥的生成办法
  12. python程序文件扩展名主要是什么_python程序文件扩展名知识点详解
  13. API 接口应该如何设计?如何保证安全?如何签名?如何防重?
  14. Spring中bean的scop
  15. 生成对抗式网络 (GAN) 及其应用
  16. Python生成声音波形、模拟钢琴音色
  17. VGG论文原文重点提炼解析
  18. 【PPic】在PPic图床中如何配置使用七牛
  19. windows10 设定和取消定时关机
  20. iOS 简单实用的音乐播放器,少年,自己做个歌单吧。。。。。。

热门文章

  1. 代码覆盖率在性能优化上的一种可行应用
  2. Effective Java 类和接口 第17条:要么为继承而设计,并提供文档说明,要么就禁止继承
  3. robot—如何调用上传文件的接口,表单传值
  4. java的jna电脑桌面背景_获取bing图片并自动设置为电脑桌面背景(使用 URLDownloadToFile API函数)...
  5. 使用 Scrapy + Selenium 爬取动态渲染的页面
  6. 关于source insight、添加.s和.S文件,显示全部路径、加入项目后闪屏幕
  7. XDOJ32角谷定理
  8. OpenCV-Python:图像的几何变换(平移、旋转、仿射变换等)
  9. 戴尔台式计算机怎么安装的,戴尔Dell电脑U盘安装台式机win10系统教程详解
  10. RHCSA之Linux系统简介