iloc取数据的用法

使用前,应该从Python中导入pandas库,iloc是Pandas库中DataFrameSeries对象的一个方法,用于通过整数位置(索引)选择数据。iloc代表"integer location",它允许你通过整数位置来访问数据,而不是通过标签。

用法示例如下:
iloc后面应该接[ , ],而不是()
逗号前面表示,后面表示

import pandas as pd
dict = {"name":['Andy','Mike','Curry'],
       "age":[15,12,19],
       "city":['wuhan','hanghzou','nanjing']
                }
df = pd.DataFrame(dict)
print(df)
print("#"*30)
data = df.iloc[:,0:2]
print(data)
    name  age      city
0   Andy   15     wuhan
1   Mike   12  hanghzou
2  Curry   19   nanjing
##############################
    name  age
0   Andy   15
1   Mike   12
2  Curry   19

另外的例子:

import pandas as pd
dict = {"name":['Andy','Mike','Curry'],
       "age":[15,12,19],
       "city":['wuhan','hanghzou','nanjing']
                }
df = pd.DataFrame(dict)
print(df)
print("#"*30)
data = df.iloc[0,1]
print(data)   #output:15

*[ :]切片:
这里应该仔细阐述一下
[ :]

如果是列表,请注意转换为Series格式

import pandas as pd
list = [1,2,3,4,5,6,7,8]
se = pd.Series(list)
print(se.iloc[:5])
0    1
1    2
2    3
3    4
4    5
dtype: int64

另外,正序(0开始)和反序(-1开始)可以混合使用:
下面的列子是前面是正数,后面是负数,如果前负后正,是同样的前闭后开,但是如果正数超过了负数所在的位次,将返回空的Series,见第二个例子:

import pandas as pd
list = [1,2,3,4,5,6,7,8]
se = pd.Series(list)
print(se.iloc[2:-2])
2    3
3    4
4    5
5    6
dtype: int64

接上第二个例子:

import pandas as pd
list = [1,2,3,4,5,6,7,8]
se = pd.Series(list)
print(se.iloc[7:-2])  #output:Series([], dtype: int64)

还有一个经典的例子:
**iloc[ : , : -1]**表示剔除最后一行

import pandas as pd

data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9],
    'D': [10, 11, 12]
}
print(df)
print("#"*30)
df = pd.DataFrame(data)
print(df.iloc[:,:-1])
#output:
  A  B  C   D
0  1  4  7  10
1  2  5  8  11
2  3  6  9  12
##############################
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

如果用反序的话,同样是前闭后开:

import pandas as pd
list = [1,2,3,4,5,6,7,8]
se = pd.Series(list)
print(se.iloc[-7:-2])
1    2
2    3
3    4
4    5
5    6
dtype: int64

还有一种格式是带有步长的:
[开始位置 : 结束位置 :步长]

import pandas as pd
list = [1,2,3,4,5,6,7,8]
se = pd.Series(list)
print(se.iloc[1:7:2])
#output:
1    2
3    4
5    6
dtype: int64

有一种步长为负数的情况,表示倒着取:起止顺序也得倒着写

import pandas as pd
list = [1,2,3,4,5,6,7,8]
se = pd.Series(list)
print(se.iloc[7:1:-2])码片
#output:
7    8
5    6
3    4
dtype: int64
import pandas as pd
list = [1,2,3,4,5,6,7,8]
se = pd.Series(list)
print(se.iloc[-1:-7:-2])
#output:
7    8
5    6
3    4
dtype: int64
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值