Pandas loc与iloc

先来看一下示例:

#!/usr/bin/python
import pandas as pd

三个字段 name, site, age
nme = ["Google", "Runoob", "Taobao", "Wiki"]
st = ["www.google.com", "www.runoob.com", "www.taobao.com", "www.wikipedia.org"]
ag = [90, 40, 80, 90]

字典
dict = {'name': nme, 'site': st, 'age': ag}

df = pd.DataFrame(dict, index=[1,2,3,4])
print(df)

print(df.loc[1:3,['name','site']])
print(df.iloc[1:3,[0,1]])

输出:

     name               site  age
1  Google     www.google.com   90
2  Runoob     www.runoob.com   40
3  Taobao     www.taobao.com   80
4    Wiki  www.wikipedia.org   90

     name            site
1  Google  www.google.com
2  Runoob  www.runoob.com
3  Taobao  www.taobao.com

     name            site
2  Runoob  www.runoob.com
3  Taobao  www.taobao.com

将df的索引设置成了整数的1,2,3,4;

df.loc[row selection, column selection]

其中loc的row是依据指定的标签来查找的,比如这里查找的就是标签1到3的行数据。

df.iloc [row selection, column selection]

其中iloc的row是根据索引来查找的,比如这里查找的就是第一行到第三行的数据,取值范围是length-1,这里即3-1行数据;其中iloc的i即是index的意思。

Pandas loc与iloc
df = pd.DataFrame(dict, index=[1,2,3,4])
print('df数据:\n',df,'\n')

#print(df.loc[1:3,['name','site']])
print('iloc取第一行:\n',df.iloc[0],'\n')

print('iloc取最后一行:\n',df.iloc[-1],'\n')

out:
df数据:
      name               site  age
1  Google     www.google.com   90
2  Runoob     www.runoob.com   40
3  Taobao     www.taobao.com   80
4    Wiki  www.wikipedia.org   90

iloc取第一行:
 name            Google
site    www.google.com
age                 90
Name: 1, dtype: object

iloc取最后一行:
 name                 Wiki
site    www.wikipedia.org
age                    90
Name: 4, dtype: object

其中iloc只取一行时返回的是Series数据。

传递列表可转为Dataframe:

print('iloc取第一行:\n',df.iloc[[0]],'\n')
out:
iloc取第一行:
      name            site  age
1  Google  www.google.com   90

loc:

1.定义

loc按照标签或者索引、布尔值或者条件进行选择数据,这种选择数据的方法较为常用。

(1)根据索引选择单行或单列

df = pd.DataFrame(dict, index=[1,2,3,4])
print('df数据:\n',df,'\n')

df.set_index('name', inplace=True)
print('设置name为索引:\n', df, '\n')

print('loc查找:\n', df.loc[['Google','Wiki']], '\n')

out:
df数据:
      name               site  age
1  Google     www.google.com   90
2  Runoob     www.runoob.com   40
3  Taobao     www.taobao.com   80
4    Wiki  www.wikipedia.org   90

设置name为索引:
                      site  age
name
Google     www.google.com   90
Runoob     www.runoob.com   40
Taobao     www.taobao.com   80
Wiki    www.wikipedia.org   90

loc查找:
                      site  age
name
Google     www.google.com   90
Wiki    www.wikipedia.org   90

(2)使用loc进行布尔值/逻辑索引

查找site为”www.google.com”的数据,在查找一些特定属性的数据时有用。

print('loc查找:\n', df.loc[df['site'] == 'www.google.com'], '\n')

out:
loc查找:
                   site  age
name
Google  www.google.com   90

(3)使用loc修改Dateframe中的值

先选出想要的数据,然后进行赋值操作。

df.loc[df['site'] == 'www.google.com', 'age'] = 80

out:
loc查找:
                   site  age
name
Google  www.google.com   80

df.loc[df['age'] > 80, 'site'] = 'www.google.com'
print('loc查找:\n', df.loc[df['site'] == 'www.google.com'], '\n')

out:
loc查找:
                   site  age
name
Google  www.google.com   90
Wiki    www.google.com   90
#这样查找也可以,但功能比loc少很多
print(df[df['age'] > 80])

out:
     name               site  age
1  Google     www.google.com   90
4    Wiki  www.wikipedia.org   90

模糊查找,使用startswith和endswith

print('查找site以www开头的数据:\n', df.loc[df['site'].str.startswith('www')], '\n')
print('查找site以.com结尾的数据:\n', df.loc[df['site'].str.endswith('.com')], '\n')

out:
查找site以www开头的数据:
      name               site  age
1  Google     www.google.com   90
2  Runoob     www.runoob.com   40
3  Taobao     www.taobao.com   80
4    Wiki  www.wikipedia.org   90

查找site以.com结尾的数据:
      name            site  age
1  Google  www.google.com   90
2  Runoob  www.runoob.com   40
3  Taobao  www.taobao.com   80

参考:Pandas经典用法:数据筛选之iloc和loc_我爱Python数据挖掘的博客-CSDN博客_pandas.iloc

第008篇:数据选择 loc & iloc – 知乎

pandas中iloc与loc的使用_atwdy的博客-CSDN博客_pandas的iloc和loc

Original: https://blog.csdn.net/xiadeliang1111/article/details/126683235
Author: soulsoul_god
Title: Pandas loc与iloc

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/675954/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球