Day3:loc()与iloc()
Posted 互联网杂货店
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day3:loc()与iloc()相关的知识,希望对你有一定的参考价值。
1、使用loc()索引数据
import pandas as pd
import numpy as np
df = pd.DataFrame('城市': ['北京', '广州', '天津', '上海', '杭州', '成都', '澳门', '南京'],
'收入': [10000, 10000, 5000, 5002, 40000, 50000, 8000, 5000],
'年龄': [50, 43, 34, 40, 25, 25, 45, 32])
df.set_index([["一", "二", "三", "四", "五", "六", "七", "八"]], inplace=True)
print(df)
城市 收入 年龄
一 北京 10000 50
二 广州 10000 43
三 天津 5000 34
四 上海 5002 40
五 杭州 40000 25
六 成都 50000 25
七 澳门 8000 45
八 南京 5000 3
loc函数主要通过 行标签 索引行数据
使用loc函数,索引的是字符串,前后都要取,是属于“前闭后闭”的情况。
1、索引行标签是“一”的这一行数据
print(df.loc["一"])
城市 北京
收入 10000
年龄 50
2、索引行标签是“一”、“二”的这一行数据
print(df.loc["一":"二"])
城市 收入 年龄
一 北京 10000 50
二 广州 10000 43
3、索引“北京”这一个数据
print(df.loc["一","城市"])
北京
通过指定行索引和索引,取到了“北京”这一数据
4、获取一个2*2的数据集(前两行前两列所交的四个数据为例)
print(df.loc["一":"二","城市":"收入"])
城市 收入
一 北京 10000
二 广州 10000
5、索引“年龄”这一列数据
# print(df.loc["年龄"]) 对于列标签来说,上面这样用是不允许的。在索引行的时候可以这么用
print(df.loc[:,"年龄"])
一 50
二 43
三 34
四 40
五 25
六 25
七 45
八 32
6、要索引多列时也是一样的用法
print(df.loc[:,"城市":"收入"])
城市 收入
一 北京 10000
二 广州 10000
三 天津 5000
四 上海 5002
五 杭州 40000
六 成都 50000
七 澳门 8000
八 南京 5000
2、iloc()
iloc函数主要通过 行号 索引行数据
而且,iloc函数索引的数据是int整型,因此是Python默认的前闭后开。注意只能说int型,也就是数字,输入字符的话是会报错的。
1、利用iloc索引第一行
print(df.iloc[0])
城市 北京
收入 10000
年龄 50
print(df.iloc[0:1])
城市 收入 年龄
一 北京 10000 50
print(df.iloc[0:2])
城市 收入 年龄
一 北京 10000 50
二 广州 10000 43
从上面三种表达,大家可以明确看到
iloc函数索引的是int型的数字,是属于前闭后开的。
(注意~索引都是默认从0开始的~)
2、利用iloc函数索引多行(索引一下奇数行)
print(df.iloc[[0,2,4,6]]) # 等同df.iloc[0:8:2]
城市 收入 年龄
一 北京 10000 50
三 天津 5000 34
五 杭州 40000 25
七 澳门 8000 45
3、利用iloc函数索引多列(索引一下收入列和年龄列)
print(df.iloc[:,1:3]) #df.iloc[:,[1,2]]
收入 年龄
一 10000 50
二 10000 43
三 5000 34
四 5002 40
五 40000 25
六 50000 25
七 8000 45
八 5000 32
4、利用iloc函数索引一个2*2的数据集:(前两行前两列所交的四个数据为例)
print(df.iloc[[0,1],[0,1]])
城市 收入
一 北京 10000
二 广州 10000
以上是关于Day3:loc()与iloc()的主要内容,如果未能解决你的问题,请参考以下文章
`.loc` 和 `.iloc` 与 MultiIndex'd DataFrame