本文介绍: 参考的书籍在线版链接:利用 Python 进行数据分析 · 第 2 版当你看完1-5的内容再来看这个表,用于以后的查询。切片时,loc包含两端点,左闭右闭;iloc不包含结束点,左闭右开“:”表示行(列)切片的意思,行开始点:行结束点。当只获取行的时候,列可以省略当只获取列的时候,行不能省略,可以写作loc[ : , 列索引],意思是所有行都选中 year state pop debt
Pandas行和列的获取
由于平时没有系统的学习pandas,导致在实际应用过程中,对于获取df中的行和列经常出现问题,于是总结一下,供自己以后参考。
参考的书籍在线版链接:利用 Python 进行数据分析 · 第 2 版
0 查看手册
功能 | |||
---|---|---|---|
获取列 | df.loc[: , 列名序列] | df.iloc[ : , 列索引序列] | df[列名序列] |
获取行 | df.loc[行名序列] | df.iloc[ 行索引序列] | df[行名:列名] |
获取行和列1 | df.loc[行名序列,列名序列] | df.iloc[ 行索引序列,列索引序列] | |
获取行和列2 | df.loc[行名开始:行名结束,列名开始:列名结束] | df.iloc[行索引开始:行索引结束,列索引开始:列索引结束] |
序列的含义
切片的含义
loc的用法
1 创建一个DataFrame作为示例
import pandas as pd
# 创建一个df
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
index=['one', 'two', 'three', 'four',
'five', 'six'])
frame
year | state | pop | debt | |
---|---|---|---|---|
one | 2000 | Ohio | 1.5 | NaN |
two | 2001 | Ohio | 1.7 | NaN |
three | 2002 | Ohio | 3.6 | NaN |
four | 2001 | Nevada | 2.4 | NaN |
five | 2002 | Nevada | 2.9 | NaN |
six | 2003 | Nevada | 3.2 | NaN |
2 获取行和列索引
# 获取行、列名称的方法
frame.index
Index(['one', 'two', 'three', 'four', 'five', 'six'], dtype='object')
frame.columns
Index(['year', 'state', 'pop', 'debt'], dtype='object')
3 常用的索引方式
4 名称索引获取行列
4.1 获取列 –> df[列名]
df[列名序列]
获取一列:df[列名]
# 获取一列
frame["year"]
one 2000
two 2001
three 2002
four 2001
five 2002
six 2003
Name: year, dtype: int64
获取多列: df[ [多个列名] ]
# 获取多列
frame[['year', 'state']]
year | state | |
---|---|---|
one | 2000 | Ohio |
two | 2001 | Ohio |
three | 2002 | Ohio |
four | 2001 | Nevada |
five | 2002 | Nevada |
six | 2003 | Nevada |
4.2 获取行 -> df.loc[]
获取一行
# 获取一行的的方法
frame.loc['one']
year 2000
state Ohio
pop 1.5
debt NaN
Name: one, dtype: object
获取多行
# 获取多行的方法
frame.loc[['one','two']]
year | state | pop | debt | |
---|---|---|---|---|
one | 2000 | Ohio | 1.5 | NaN |
two | 2001 | Ohio | 1.7 | NaN |
使用切片进行获取,此处不需要使用.loc
frame['one':'two']
year | state | pop | debt | |
---|---|---|---|---|
one | 2000 | Ohio | 1.5 | NaN |
two | 2001 | Ohio | 1.7 | NaN |
4.3 使用.loc方法获取你想获取的所有
获取指定的行和列区域
获取一行多列
frame.loc['one',['year','state']]
year 2000
state Ohio
Name: one, dtype: object
获取多行多列
# 同时获取指定行和列
frame.loc[['one', 'two'],['year','state']]
year | state | |
---|---|---|
one | 2000 | Ohio |
two | 2001 | Ohio |
获取指定的列区域
frame.loc[:, 'year']
one 2000
two 2001
three 2002
four 2001
five 2002
six 2003
Name: year, dtype: int64
4.4 切片的妙用
下面代码可以理解为,行从名称为’two’的行开始,一直到最后;列从名称为’year’的列开始一直到最后。
frame.loc['two': , "year":]
year | state | pop | debt | |
---|---|---|---|---|
two | 2001 | Ohio | 1.7 | NaN |
three | 2002 | Ohio | 3.6 | NaN |
four | 2001 | Nevada | 2.4 | NaN |
five | 2002 | Nevada | 2.9 | NaN |
six | 2003 | Nevada | 3.2 | NaN |
当然你完全可以指定他的终点
frame.loc['two':'five', 'year':'pop']
year | state | pop | |
---|---|---|---|
two | 2001 | Ohio | 1.7 |
three | 2002 | Ohio | 3.6 |
four | 2001 | Nevada | 2.4 |
five | 2002 | Nevada | 2.9 |
5 整数索引 iloc[行索引序列,列索引序列]
5.1 获取行
就像loc,只获取行的时候,列序列完全可以省略,反之则不行。
获取一行
# 获取第0行
frame.iloc[0]
year 2000
state Ohio
pop 1.5
debt NaN
Name: one, dtype: object
获取多行
frame.iloc[[0,1]]
year | state | pop | debt | |
---|---|---|---|---|
one | 2000 | Ohio | 1.5 | NaN |
two | 2001 | Ohio | 1.7 | NaN |
使用切片获取,左闭右开
# 切片获取多行 左闭右开
frame.iloc[0:1]
year | state | pop | debt | |
---|---|---|---|---|
one | 2000 | Ohio | 1.5 | NaN |
5.2 获取列
只要将行切片获取全部即可
获取一列
frame.iloc[:, 1]
one Ohio
two Ohio
three Ohio
four Nevada
five Nevada
six Nevada
Name: state, dtype: object
获取多列
frame.iloc[:, [1, 2]]
state | pop | |
---|---|---|
one | Ohio | 1.5 |
two | Ohio | 1.7 |
three | Ohio | 3.6 |
four | Nevada | 2.4 |
five | Nevada | 2.9 |
six | Nevada | 3.2 |
使用切片获取多列
# 使用切片
frame.iloc[:, 1: 3]
state | pop | |
---|---|---|
one | Ohio | 1.5 |
two | Ohio | 1.7 |
three | Ohio | 3.6 |
four | Nevada | 2.4 |
five | Nevada | 2.9 |
six | Nevada | 3.2 |
5.3 获取指定行和列范围
方法与loc完全一致,只是换了索引的方式
获取多行多列
frame.iloc[[2,3],[1,3]]
使用切片获取
### 获取指定行和列范围
frame.iloc[2:, 3:]
debt | |
---|---|
three | NaN |
four | NaN |
five | NaN |
six | NaN |
参考:
原文地址:https://blog.csdn.net/Roxlu7/article/details/128167512
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_27260.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。