第三章 索引

本文详细介绍了Pandas中的索引操作,包括表的列索引、序列的行索引(字符串和整数类型)、loc和iloc索引器的使用,以及query方法。通过实例展示了如何选取特定列、行,以及如何处理包含空格的列名。文章还提出了在赋值操作中避免修改原始DataFrame的策略,并提供了多个练习题以巩固所学知识。
摘要由CSDN通过智能技术生成

第三章 索引

一、索引器

1、表的列索引

通过类似字典标记的方式或属性的方式,可以将DataFramed的列获取为一个Series。

  • 只取出一列 frame2['state'],列名中不包含空格时,可以直接用.loc取出:frame2.state
  • 取出多个列 则可以通过[列名组成的列表],得到一个DataFrame

2、序列的行索引

以字符串为索引的Series (也可以理解为必须给索引的值的显示索引)
  • 只取出单个索引 使用[item],得到该item对应的所有值
  • 取出多个索引 使用[item的列表]
  • 取出某两个索引之间的元素 (索引唯一出现)这里的切片会包含左右两个端点值s['c': 'b': -2]
以整数为索引的Series(不给出索引的值,会自动生成整数)
  • 取出单个索引或多个索引 使用[int][int_list],则可以取出对应索引元素的值
  • 取出某两个索引之间的元素 这里的整数切片不包含右端点

3、loc索引器

对DataFrame的行进行选取,一种是基于元素的loc索引器。

以函数为索引

In [42]: def condition(x):
   ....:     condition_1_1 = x.School == 'Fudan University'
   ....:     condition_1_2 = x.Grade == 'Senior'
   ....:     condition_1_3 = x.Weight > 70
   ....:     condition_1 = condition_1_1 & condition_1_2 & condition_1_3
   ....:     condition_2_1 = x.School == 'Peking University'
   ....:     condition_2_2 = x.Grade == 'Senior'
   ....:     condition_2_3 = x.Weight > 80
   ....:     condition_2 = condition_2_1 & (~condition_2_2) & condition_2_3
   ....:     result = condition_1 | condition_2
   ....:     return result
   ....: 

In [43]: df_demo.loc[condition]
Out[43]: 
                           School     Grade Gender  Weight Transfer
Name                                                               
Qiang Han       Peking University  Freshman   Male    87.0        N
Chengpeng Zhou   Fudan University    Senior   Male    81.0        N
Changpeng Zhao  Peking University  Freshman   Male    83.0        N
Chengpeng Qian   Fudan University    Senior   Male    73.0        Y

这里主要记录一下,在进行赋值操作时,容易出现的一种报错及解决方案。

# 之前自己使用过程中的问题
cases_over_10000_china = cases_china_copy[cases_china_copy.cases > 10000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值