pandas loc和iloc 以及ix的区别

1,首先是loc是根据行来进行切数据

(1) index为行,columns为列,当行为字符串时:

代码如下:

import pandas as pd
from pandas import DataFrame
data = [[4,5,6],[7,8,9]]
index = ['d', 'e']
columns = ['a', 'b', 'c']
df = DataFrame(data = data, index = index, columns = columns)
df 
	a	b	c
d	4	5	6
e	7	8	9
print(df.loc['d'])
a    4
b    5
c    6
Name: d, dtype: int64
print(df.loc['d']['a'])
4


(2) 当index为int型时:

import pandas as pd
from pandas import DataFrame
data = [[4,5,6],[7,8,9]]
index = [0, 1]
columns = ['a', 'b', 'c']
df = DataFrame(data = data, index = index, columns = columns)
df 
	a	b	c
0	4	5	6
1	7	8	9
print(df.loc[1])
a    7
b    8
c    9
Name: 1, dtype: int64

(3) loc 只能获取行数据,如果获取的行数据不存在就会报错。

当获取多行数据时:

import pandas as pd
from pandas import DataFrame
data = [[4,5,6],[7,8,9]]
index = [0, 1]
columns = ['a', 'b', 'c']
df = DataFrame(data = data, index = index, columns = columns)
df 
	a	b	c
0	4	5	6
1	7	8	9
print(df.loc[0:2])
   a  b  c
0  4  5  6
1  7  8  9
In [65]:
print(df.loc[1])
a    7
b    8
c    9
Name: 1, dtype: int64
print(df.loc[1:])
   a  b  c
1  7  8  9

(4) 当获取数据的某列时,以及特定的切片时:

    获取b列以及第一行的bc列数据:

import pandas as pd
from pandas import DataFrame
data = [[4,5,6],[7,8,9]]
index = [0, 1]
columns = ['a', 'b', 'c']
df = DataFrame(data = data, index = index, columns = columns)
df 
	a	b	c
0	4	5	6
1	7	8	9
print(df.loc[:,'b'])
0    5
1    8
Name: b, dtype: int64
print(df.loc[1,['b','c']])
b    8
c    9
Name: 1, dtype: int64

dataframe的索引[1:3]是包含1,2,3的,与平时的不同。

2. iloc是根据行号和列号来进行取数据的:

import pandas as pd
from pandas import DataFrame
data = [[4,5,6],[7,8,9]]
index = ['d', 'e']
columns = ['a', 'b', 'c']
df = DataFrame(data = data, index = index, columns = columns)
df 
	a	b	c
d	4	5	6
e	7	8	9
print(df.iloc[0])
a    4
b    5
c    6
Name: d, dtype: int64
print(df.iloc[0,1])
5

3.ix 结合两种的混合索引

import pandas as pd
from pandas import DataFrame
data = [[4,5,6],[7,8,9]]
index = ['d', 'e']
columns = ['a', 'b', 'c']
df = DataFrame(data = data, index = index, columns = columns)
df 
	a	b	c
d	4	5	6
e	7	8	9
print(df.ix[0])
a    4
b    5
c    6
print(df.ix['d'])
a    4
b    5
c    6
Name: d, dtype: int64





 

abc04561789
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值