python df.iloc[]和df.loc[]使用
python df.iloc[]和df.loc[]使用
·
python df.iloc[]和df.loc[]使用
假设df是一个DataFrame型的数据集,而iloc函数和loc函数的作用就是对数据集进行选择(说切片也行)两个函数都属于pandas库。
在对DataFrame进行操作时,会大量的使用这两个方法,从数据集中提取出目标数据。
区别
-
loc [ raw , col ]:第一个参数raw表示行选,行选只能是整数;后面的参数表示列选,列选只能是索引名称,比如姓名、年龄之类的
-
iloc [ raw , col ]:第一个参数raw表示行选,第二个参数表示列选,都必须是整数。
参数使用
:
的使用:假设在loc函数中raw=1:3(同理列选col),则表示选择从第一行到第三行的所有行,也就是[ 1 , 3 ](左闭右闭);而在iloc函数中,表示选择从第一行到第2行的所有行,不包括第三行,也就是 [ 1 , 3) (左闭右开)。如果只传递一个 :
,则表示选择全部行(列)。“-1”表示最后一行
举例
# 创建一个DataFrame数据集
df = pd.DataFrame([
['green', 'M', 10.1, 'class1'],
['red', 'L', 13.5, 'class2'],
['blue', 'XL', 15.3, 'class1']],
index=range(0, 3), columns=list('ABCD'))
print('现在的数据集是:')
print(df)
print('当前数据集为:' + str(df.shape))
cols = df.shape[1] # shape[0]表行数,shape[1]表示列数
print('列数是:' + str(cols))
输出这个数据集:
A B C D
0 green M 10.1 class1
1 red L 13.5 class2
2 blue XL 15.3 class1
当前数据集为:(3, 4)
列数是:4
对loc函数使用
print('loc[row,col]通过标签提取数据:')
print('取出行标签为0的那一行:')
print(df.loc[0]) # 只传递一个参数时,默认是行选
Out:
loc[row,col]通过标签提取数据:
取出行标签为0的那一行:
A green
B M
C 10.1
D class1
Name: 0, dtype: object
print('取出列标签为B的那一列:')
print(df.loc[:, 'B'])
Out:
取出列标签为B的那一列:
0 M
1 L
2 XL
Name: B, dtype: object
print('取出列标签为B的第0行和第1行(loc左闭右闭):')
print(df.loc[0:1, 'B'])
Out:
取出列标签为B的第0行和第1行(loc左闭右闭):
0 M
1 L
Name: B, dtype: object
对iloc函数使用
print('iloc[row,col]通过行列坐标来取数据:')
print('取出第0行:')
print(df.iloc[0])
# 也可以用print(df.iloc[0,:])
Out:
iloc[row,col]通过行列坐标来取数据:
取出第0行:
A green
B M
C 10.1
D class1
Name: 0, dtype: object
print('取出第1列(注意:iloc左开右闭):')
print(df.iloc[:, 1:2])
Out:
取出第1列(注意:iloc左开右闭):
B
0 M
1 L
2 XL
print('取出第1行和第二行的后两列:')
# cols = df.shape[1] # shape[0]表行数,shape[1]表示列数
print(df.iloc[1:3, cols - 2:cols])
Out:
取出第1行和第二行的后两列:
C D
1 13.5 class2
2 15.3 class1
更多推荐
已为社区贡献1条内容
所有评论(0)