第三章 索引

一、索引器

1. 表的列索引

1)从DataFrame中取出相应的列,返回值为Series
① df[‘column_name’]
⇓ ⇑ \Downarrow \quad \Uparrow

② df.column_name
列名中不包含空格
2)取出多个列,返回值为一个DataFrame
df[[‘column1’,‘column2’]]

2. 序列的行索引

1)以字符串为索引的Series
① 取出单个索引的字母,返回一个Series
s[‘index’]
② 取出多个索引的对应元素
s[[‘index1’,‘index2’,……]]
③ 取出某两个索引之间的元素
s[‘start_index’,‘end_index’,‘步长’]
start_index与end_index再整个索引中唯一出现;出来的结果包含两个端点
如果前后端点的值不唯一,那么需要经过排序才能使用切片
s.sort_index()[‘start_index’,‘end_index’]

2)以整数为索引的Series
① 同字符串的① ② 用法可取出相应索引元素的值
② s[起点位置:终点位置:步长]
不包含右端点哦~~
如果不想陷入麻烦,那么请不要把纯浮点以及任何混合类型(字符串、整数、浮点类型等的混合)作为索引,否则可能会在具体的操作时报错或者返回非预期的结果,并且在实际的数据分析中也不存在这样做的动机。

3.loc索引器

1)基于元素的 loc 索引
loc[*,#]
*为 ① 单个元素
如果该元素在索引中重复则结果为DataFrame,否则为Series
例:df_demo.loc[‘Qiang Sun’]
② 元素列表
取出列表中所有元素值对应的行或列
例:df_demo.loc[[‘Qiang Sun’,‘Quan Zhao’], [‘School’,‘Gender’]]
③ 切片
如果是唯一值的起点和终点字符,那么就可以使用切片,并且包含两个端点,如果不唯一则报错
使用整数切片的时候和上面字符串索引的要求一致
④ 布尔列表
列表为 True 的位置所对应的行会被选中, False 则会被剔除。
例:df_demo.loc[df_demo.Weight>70].head()
df_demo.loc[df_demo.Grade.isin([‘Freshman’, ‘Senior’])].head()
对于复合条件而言,可以用 |(或), &(且), ~(取反) 的组合来实现

练一练
select_dtypes 是一个实用函数,它能够从表中选出相应类型的列,若要选出所有数值型的列,只需使用 .select_dtypes(‘number’) ,请利用布尔列表选择的方法结合 DataFrame 的 dtypes 属性在 learn_pandas 数据集上实现这个功能。

# 是数值的是True,不是的是False
bool=[str(df_demo[v].dtype) in {
   'float64','int64'} for v in df_demo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值