【数据分析】数据筛选与访问行列元素3
访问元素
.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属性结合切片或列表进行访问,组合情况较多。 |
|
示例:
这三行代码读取了路径为 "/Users/yequ/电商数据清洗.csv" 的文件。 |
|
总结:
按照行位置访问行数据
访问DataFrame对象中的.iloc
属性可以按照行位置对应的整数索引访问行数据。
1.访问某一行:.iloc[index]
2.访问连续的某几行:.iloc[
起点
index:
结束
index]
,不包含结束index这一行数据
3.访问不连续的某几行:.iloc[[index1,index2,...]]
4.访问单个元素:.iloc[index
的位置
,columns
的位置
]
5.访问多个元素:.iloc[index
位置切片或列表,
columns
位置切片或列表
]
以上为:如何使用列索引和行索引来分别获取列数据和行数据的全部内容。