【数据分析】索引与数据筛选(1)
索引与数据筛选
为什么要筛选数据?
因为在处理数据的实际应用中,数据的筛选很重要。Like:要选择数据集里的某几行某几列,或者将符合某种条件的数据筛选出来单独处理和分析,此时就要进行特定处理。
处理方案:
在pandas模块中,有很多种索引方式来定位和选择DataFrame中的数据。
学习目标1
今天的课程里,我们将依此学习以下4种索引方式:
1. 列索引 :访问列数据
2. .loc属性:通过索引的值访问行数据和元素
3. .iloc属性:通过索引的位置访问行数据和元素
4. 行列索引的结合:访问元素
5.布尔索引:一个判断条件或多个判断条件
这是一份电商平台订单数据。
这份数据中的 "payment" 、 "price" 和 "cutdown_price" 这3列中的数据都是以分为单位。现在,为了后续计算和整理,我们想将这三列数据以元为单位。所以,需要将这三列数据的值除以100来得到合适的数据。
处理方案
一种方式是:我们可以依次访问这三列数据,并将它们逐个除以100。
另一种方式是:同时访问这三列数据,并一起除以100。
接下来,我们将分别学习访问一列和访问多列的方法。
首先,访问一列数据可以按列索引(columns)访问。只需在DataFrame变量后面使用中括号和列索引: |
# 导入pandas模块,并以"pd"为该模块的简写 import pandas as pd # 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件 # 并将结果赋值给变量data data = pd.read_csv("/Users/yequ/电商数据清洗.csv") # 使用print()输出变量data中的 "payment" 列 print(data["payment"]) |
|
接下来,我们就可以将这3列数据 依次除以100 来得到以元为单位的数据。
代码示例: # 导入pandas模块,并以"pd"为该模块的简写 import pandas as pd # 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件 # 并将结果赋值给变量data data = pd.read_csv("/Users/yequ/电商数据清洗.csv") # 将变量data中的 "payment" 列修改为以元为单位的数据 data["payment"] = data["payment"]/100 # TODO 将变量data中 的 "price" 列修改为以元为单位的数据 data["price"] = data["price"]/100 # 将变量data中的 "cutdown_price" 列修改为以元为单位的数据 data["cutdown_price"] = data["cutdown_price"]/100 # 使用print()输出变量data print(data) |
|
总结:访问一列数据时,需要使用data["columns"]
。
一次性访问多列数据
2.访问多列数据: |
# 导入pandas模块,并以"pd"为该模块的简写 import pandas as pd # 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件 # 并将结果赋值 给变量data data = pd.read_csv("/Users/yequ/电商数据清洗.csv") # 使用print()输出变量data中的 "payment", "price", "cutdown_price" 这三列数据 print(data[["payment", "price", "cutdown_price"]]) |
|
代码具体解释:
第一个中括号 第一个中括号,也就是最外面的中括号,表示对变量data进行索引。 | # 导入pandas模块,并以"pd"为该模块的简写 import pandas as pd # 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件 # 并将结果赋值给变量data data = pd.read_csv("/Users/yequ/电商数据清洗.csv") # 使用print()输出变量data中的 "payment", "price", "cutdown_price" 这三列数据 print(data[["payment","price","cutdown_price"]]) |
第二个中括号 第二个中括号,也就是最里面的中括号,是一个列表,代表有多列数据。 | # 导入pandas模块,并以"pd"为该模块的简写 import pandas as pd5 # 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件 # 并将结果赋值给变量data data = pd.read_csv("/Users/yequ/电商数据清洗.csv") # 使用print()输出变量data中的 "payment", "price", "cutdown_price" 这三列数据 print(data[["payment","price","cutdown_price"]]) |
练一练
将 data 中的"payment", "price", "cutdown_price" 这三列修改为以元为单位的数据。 |
# 导入pandas模块,并以"pd"为该模块的简写 import pandas as pd # 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件 # 并将结果赋值给变量data data = pd.read_csv("/Users/yequ/电商数据清洗.csv") # TODO 将变量data中的"payment", "price", "cutdown_price" 这三列修改为以元为单位的数据 data[["payment","price","cutdown_price"]]=data[["payment","price", "cutdown_price"]]/100 # 使用print()输出变量data print(data) |
|
总结:访问多列数据时,需要使用data[["columns_1","columns_2",...]]
。
总结:
列索引
访问一列数据:data["columns"]
访问多列数据:data[["columns_1","columns_2",...]]