选择DataFrame的子集需要考虑到数据的类型,数据中的关键信息,和选择规则等多个因素。下面是一些基本的选择子集的方法。
选择某一列
可以通过在中括号中输入列名来获取DataFrame中的指定列,也可以使用属性方式获取。
import pandas as pd
data = pd.read_csv("data.csv")
# 使用中括号获取指定列
col1 = data["column1"]
# 使用属性获取指定列
col2 = data.column2
选择多列
使用[[]]
操作符可以选择DataFrame中的多个列,操作符中的元素是以逗号分隔的列名列表。
# 选择多个列
multi_cols = data[["column1", "column2"]]
选择某一行
可以通过iloc
方法选择DataFrame中的指定行,iloc
方法的参数是一个整数,代表需要获取的行号。
# 选择第2行
row1 = data.iloc[1]
选择多行
使用iloc
方法可以选择DataFrame中连续的多行,iloc
方法的参数格式是[start:end]
,start和end的取值分别是选择区间的起始行号和结束行号,end不包含在结果中。
# 选择第1-3行
multi_rows = data.iloc[0:3]
选择某一区域
使用iloc
方法同时选择多行和多列即可选择DataFrame中的某一区域,iloc
方法的格式是[rows, columns]
,其中columns是以逗号分隔的多个列名。
# 选择第1-3行和第2,4列
area = data.iloc[0:3, [1, 3]]
过滤数据
可以使用逻辑运算符如>
,<
,==
等来筛选DataFrame中满足特定条件的行,生成布尔类型的Series,然后使用布尔类型Series进行数据的过滤。
# 选择column1的值大于10的行
filtered = data[data["column1"] > 10]
操作示例
下面的代码展示了如何选择DataFrame的子集。首先,读取数据文件并显示列名和前5行数据。
import pandas as pd
data = pd.read_csv("data.csv")
print(data.columns)
print(data.head())
输出结果为:
Index(['column1', 'column2', 'column3', 'column4'], dtype='object')
column1 column2 column3 column4
0 1 a 0.01 True
1 2 b 0.02 False
2 3 c 0.03 True
3 4 d 0.04 False
4 5 e 0.05 True
然后,选择列column1和column3,选择第2行和第3行,同时,选择列column2和column4的数据。
# 选择column1和column3列
col1_col3 = data[["column1", "column3"]]
print(col1_col3)
# 选择第2和第3行
row2_row3 = data.iloc[1:3]
print(row2_row3)
# 选择第2和第4列
col2_col4 = data.iloc[:,[1,3]]
print(col2_col4)
输出结果为:
column1 column3
0 1 0.01
1 2 0.02
2 3 0.03
3 4 0.04
4 5 0.05
column1 column2 column3 column4
1 2 b 0.02 False
2 3 c 0.03 True
column2 column4
0 a True
1 b False
2 c True
3 d False
4 e True
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何选择一个DataFrame的子集 - Python技术站