pandas 使用loc和iloc读取行数据或列数据


创建一个DataFrame

data = {'name':['张三', '李四', '王五', '赵六'],'age':[20, 21, 22, 23], 'gender': [0, 1, 1, 1], 'stature': [165, 189, 178, 160], 'year': [2000, 2002, 2003, 1993]}
df = pd.DataFrame(data)
print (df)

运行结果如下:

  name  age  gender  stature  year
0   张三   20       0      165  2000
1   李四   21       1      189  2002
2   王五   22       1      178  2003
3   赵六   23       1      160  1993

一、 使用loc方法读取数据

loc:按照标签值(列明和行索引取值)来访问,支持单值访问或切片查询,还可以指定返回列变量

1.1 读取某行某列的值

# 1. 读取第二行,第二行的名称是"1"
df1= df.loc[1]

'''
name         李四
age          21
gender        1
stature     189
year       2002
Name: 1, dtype: object
'''

# 2. 读取第二列,第二列的列名是 age
df2 = df.loc[ : ,"age"]
'''
0    20
1    21
2    22
3    23
Name: age, dtype: int64
'''

# 3. 同时读取某个值,读取行号为2,列名为name的值
df3 = df.loc[2, 'name']
# '王五'

1.2 读取某个区域

# 读取第1行到第2行,age列到 stature列这个区域内的值
df4 = df.loc[ 1:2, "age":"stature"]
df4

在这里插入图片描述

1.3 按照条件筛选

单条件筛选

# 单个条件筛选:读取年龄大于20的人
df5 = df.loc[ df.age > 20]

在这里插入图片描述

多条件筛选

# 多个条件筛选:读取年龄大于20的人并且stature大于180的人
df5 = df.loc[(df.age > 20) & (df.stature> 180)]
df5

在这里插入图片描述
条件+切片

# 读取年龄大于20的人,且只显示name和stature
df5 = df.loc[ df.age > 20, ['name', 'stature']]
df5

在这里插入图片描述

二. 使用iloc方法读取数据

iloc:通过行索引和列索引位置(数字索引)来访问,支持单值访问或切片查询

2.1 读取某行某列的值

# 1. 读取第二行的值,第一行从0开始
df1= df.iloc[1]

'''
name         李四
age          21
gender        1
stature     189
year       2002
Name: 1, dtype: object
'''

# 2. 读取第二列,第一列从0开始
df2 = df.iloc[ : , 1]
'''
0    20
1    21
2    22
3    23
Name: age, dtype: int64
'''

# 3. 同时读取某个值,读取第3行,第1列的值。第一列从0开始
df3 = df.iloc[2, 0]
# '王五'

2.2 读取某个区域的数据


# 读取第2、3行,第3、4列
df1 = df.iloc[1:3, 2:4]
df1 

在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用DataFrame类的lociloc方法获取最大的20个数据,代码示例如下:df.sort_values('column_name', ascending=False).head(20).loc[:, ['column_name']] ### 回答2: 要使用Pandas库的DataFrame类的lociloc方法截取最大的20个数据,可以按照以下步骤进操作: 1. 首先,导入Pandas库并读取数据集,将其存储为一个DataFrame对象。例如,可以使用以下代码读取名为data的数据集: ```python import pandas as pd data = pd.read_csv("data.csv") ``` 2. 接下来,根据需要截取最大的20个数据。如果你想要基于某一列的值进排序,并截取最大的20个数据,你可以使用sort_values方法。例如,假设你想要基于"column_name"列的值进排序,可以使用以下代码: ```python sorted_data = data.sort_values(by="column_name", ascending=False) top_20 = sorted_data.head(20) ``` 3. 如果你仅想要基于DataFrame对象的索引进截取,可以使用iloc方法。示例如下: ```python top_20 = data.iloc[:20] ``` 这将截取DataFrame对象中的前20数据。 4. 如果要按照特定的条件截取最大的20个数据,你可以使用loc方法。例如,如果你想要基于"column_name"列的值大于某个特定值进筛选,可以使用以下代码: ```python top_20 = data.loc[data["column_name"] > threshold].head(20) ``` 这将筛选出"column_name"列中大于阈值的数据,并截取最大的20个数据。 总之,根据具体需求,你可以根据值的大小进排序,或者根据条件进筛选,然后使用sort_values、head、ilocloc方法截取最大的20个数据。 ### 回答3: 使用Pandas库的DataFrame类的lociloc方法截取最大的20个数据可以按照以下步骤进: 1. 首先,确保已经导入了Pandas库,并创建了一个DataFrame对象,假设对象名为df。 2. 使用sort_values()方法按照指定的列对DataFrame进排序。假设我们要按照列名为'column_name'的列进排序,则可以使用以下代码: df_sorted = df.sort_values(by='column_name', ascending=False) 3. 使用head()方法截取排序后的DataFrame的前20。这将选择DataFrame的前20个最大值(根据排序条件)。代码示例如下: df_top20 = df_sorted.head(20) 4. 如果想要选择DataFrame中的特定列,可以在lociloc方法中使用切片操作。例如,要选择第一列和第三列,可以使用如下代码: df_top20_selected = df_top20.iloc[:, [0, 2]].copy() 这将获取df_top20的第一列和第三列的数据,并创建一个新的DataFrame对象df_top20_selected。 5. 最后,可以根据需要对df_top20_selected进进一步的处理,例如可视化、分析等。 总结起来,使用Pandas库的DataFrame类的lociloc方法截取最大的20个数据需要进排序、截取和选择列的操作。首先排序并截取前20,然后根据需要选择特定的列。这样就可以获取到DataFrame中最大的20个数据,并对其进一步处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值