【数据分析】数据筛选与访问行列元素3

发布于:2025-03-22 ⋅ 阅读:(20) ⋅ 点赞:(0)

访问元素

.loc属性可以通过传入index的值访问行数据。

.loc属性允许传入两个参数,分别是index的值columns的值,参数间用“逗号”隔开,这样便可以访问数据中的元素。

1. 访问单个元素

访问单个元素比较简单,只需要通过它的index和columns就可以进行定位。

访问单个元素,需要依次将它的index的值和columns的值传入.loc的中括号里,用“逗号”隔开。

格式:.loc[index的值,columns的值]

import pandas as pd

# 使用pd.read_csv()函数读取CSV文件

# 并通过参数index_col来指定"order_id"列为index

# 将结果赋值给变量data

data = pd.read_csv("/Users/yequ/电商数据清洗.csv", index_col="order_id")

# 使用print()和.loc属性输出data变量里:index为3515712,columns为"payment"对应的元素

print(data.loc[3515712,"payment"])

218378912

总结:访问变量data中的单个数据的格式是:data.loc[index的值,columns的值]

2. 访问多个元素

同理,如果想访问多个元素,我们只需要找到它们对应的index和columns即可。

如果想访问多个元素,我们可以使用.loc属性结合切片或列表进行访问,组合情况较多。

格式:.loc[index切片或列表,columns切片或列表]

import pandas as pd

# 使用pd.read_csv()函数读取CSV文件

# 并通过参数index_col来指定"order_id"列为index

# 将结果赋值给变量data

data = pd.read_csv("/Users/yequ/电商数据清洗.csv", index_col="order_id")

# 使用print()和.loc属性输出data变量里:index为3515712到3515714,columns为"payment"对应的元素

print(data.loc[3515712:3515714,"payment":"items_count"])

总结:

按照index的值访问行数据

访问DataFrame对象中的.loc属性可以按照index的值访问行数据。
1.访问某一行.loc[index的值]
2.访问连续某几行.loc[起点index的值:结束index的值]包含结束index这一行值
3.访问不连续某几行.loc[[第一个index的值,第二个index的值,...]]
4.访问单个元素.loc[index的值,columns的值]
5.访问多个元素.loc[index切片或列表,columns切片或列表]

上面,用.loc属性和index的值访问行数据。

其实,除了通过index的值去定位,我们还可以通过"第几行"去定位行数据。下面,通过学习.iloc属性和行数据的位置来访问行数据。

访问行数据

.iloc属性是基于数据的整数索引,也就是数据的具体位置,来定位具体的行。索引是从0开始,所以,第1行对应的整数索引就是0。

1.访问某一行

格式:.iloc[index的位置]

如果要通过行数据所在的具体位置来访问某一行数据,需要将这一行的整数索引传入.iloc属性的中括号里。

Like:访问第1行(对应的整数索引是0);访问第3行(对应的整数索引是2)

# 导入pandas模块,并以"pd"为该模块的简写

import pandas as pd

# 读取CSV文件,并将结果赋值给变量data

data = pd.read_csv("/Users/yequ/电商数据清洗.csv")

# 使用print()和.iloc属性输出data变量里第四行的数据

print(data.iloc[3])

id                           4

order_id               3515715

user_id               46519215

payment                   8500

price                     8500

items_count                  4

cutdown_price                0

post_fee                     0

pay_type                   202

create_time      2018/2/1 0:05

pay_time         2018/2/1 0:05

Name: 3, dtype: object

总结:通过行位置来访问某一行的数据需要使用:.iloc[index]。其中,index是(具体位置-1)。

2.访问连续的某几行

格式:.iloc[index起点位置:index结束位置]

PS:如果想获取连续的几行数据时,我们也可以使用.iloc属性和 切片 进行访问。

示例中,访问第2行到第4行(索引是1到3)的代码data.iloc[1:4]

注意:和之前不一样,使用.iloc属性的切片,不包含结束index的值。

# 导入pandas模块,并以"pd"为该模块的简写

import pandas as pd

# 读取CSV文件,并将结果赋值给变量data

data = pd.read_csv("/Users/yequ/电商数据清洗.csv")

# 使用print()和.iloc属性输出data变量里第2行到第4行的数据

print(data.iloc[1:4])

2.访问不连续的某几行

格式:.iloc[[index1的位置,index2的位置,...]]

如果要访问多行不连续的数据,需要将包含这几行对应的整数索引列表传入 .iloc属性的 中括号 里。

# 导入pandas模块,并以"pd"为该模块的简写

import pandas as pd

# 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件,并将结果赋值给变量data

data = pd.read_csv("/Users/yequ/电商数据清洗.csv")

# TODO 使用print()和.iloc属性输出data变量里第2行、第145行和第276行的数据

print(data.iloc[[1,144,275]])

Ps:值得注意的是,访问多行数据时,因为传入了列表,所以有两对中括号

总结:通过行位置访问数据中不连续的某几行需要使用:.iloc[[index1,index2,...]]

访问元素

前面我们学习了.iloc属性通过传入index的位置访问行数据。

当然,.iloc属性也允许传入两个参数,分别是index的位置和columns的位置,参数间用“逗号”隔开,这样便可以访问数据中的元素。

1. 访问单个元素

格式:.iloc[index的位置,columns的位置]

访问单个元素,需要依次将其index的位置和columns的位置传入.iloc的中括号里,用“逗号”隔开。

import pandas as pd

# 读取CSV文件,并将结果赋值给变量data

data = pd.read_csv("/Users/yequ/电商数据清洗.csv")

# 使用print()和.iloc属性输出data变量里:第5行,第2列对应的元素

print(data.iloc[4,1])

总结:位置访问变量data中的单个数据的格式是:data.iloc[index的位置,columns的位置]

2. 访问多个元素

.iloc[index位置切片或列表,columns位置切片或列表]

如果想访问多个元素,我们也可以使用.iloc属性结合切片或列表进行访问,组合情况较多。

import pandas as pd

# 读取CSV文件,并将结果赋值给变量data

data = pd.read_csv("/Users/yequ/电商数据清洗.csv")

# 使用print().loc属性输出data变量里:第13行,第35列对应的元素

print(data.iloc[[0,2],[2,4]])

结果:

示例:

这三行代码读取了路径为 "/Users/yequ/电商数据清洗.csv" 的文件。
最后,输出了第2,4行,第5,6列对应的多个元素。

import pandas as pd

data = pd.read_csv("/Users/yequ/电商数据清洗.csv")

print(data.iloc[[1,3],[4,5]])

总结:

按照行位置访问行数据

访问DataFrame对象中的.iloc属性可以按照行位置对应的整数索引访问行数据。
1.访问某一行.iloc[index]
2.访问连续的某几行.iloc[起点index:结束index],不包含结束index这一行数据
3.访问不连续的某几行.iloc[[index1,index2,...]]
4.访问单个元素.iloc[index的位置,columns的位置]
5.访问多个元素.iloc[index位置切片或列表,columns位置切片或列表]

以上为:如何使用列索引行索引来分别获取列数据和行数据的全部内容