当我们使用pandas进行数据分析时,选取数据样本中特定的行和列是非常常见的操作。在pandas中,我们可以使用不同的方法来进行数据样本的行列选取,以下是一些常用的方法:
1. loc方法
loc方法可以通过标签或布尔值标识符选取数据样本中的行和列。具体方法为:
df.loc[row_label, column_label]
其中row_label可以是单个标签、标签列表或标签切片,column_label也可以是单个标签、标签列表或标签切片。示例代码如下:
import pandas as pd
data = pd.read_csv('data.csv', index_col="ID")
# 选取ID为1,2,3三个标签行中的Name和Age两列
subset = data.loc[[1,2,3], ['Name', 'Age']]
在以上代码中,我们使用loc方法选取了标签为1,2,3的三行数据中的Name和Age列。
2. iloc方法
iloc方法可以通过位置标识符选取数据样本中的行和列。具体方法为:
df.iloc[row_number, column_number]
其中row_number可以是单个整数、整数列表或整数切片,column_number也可以是单个整数、整数列表或整数切片。示例代码如下:
import pandas as pd
data = pd.read_csv('data.csv', index_col="ID")
# 选取前三行中的第二、第三列数据
subset = data.iloc[0:3, 1:3]
在以上代码中,我们使用iloc方法选取了前三行的第二、第三列数据。
通过以上两种方法,我们可以对数据样本进行复杂的行列选取操作。需要注意的是,选取的行和列可以是单个标签/整数、标签/整数列表或标签/整数切片,具体选择哪种方法取决于你的数据和需求。
例子:
我们有以下的数据:
import pandas as pd
data = {'Name': ['Tom', 'Nick', 'Jack', 'Robert', 'David', 'Tom'],
'Age': [20, 21, 19, 18, 22, 21],
'Country': ['China', 'US', 'US', 'China', 'US', 'US']}
df = pd.DataFrame(data, index=['Index1', 'Index2', 'Index3', 'Index4', 'Index5', 'Index6'])
现在,我们想选取第1行到第4行,然后选取第2列到第3列,代码如下:
subset = df.iloc[0:4, 1:3]
print(subset)
输出结果为:
Age Country
Index1 20 China
Index2 21 US
Index3 19 US
Index4 18 China
我们也可以通过标签选取,选取Index1到Index4行,Name到Country列的数据。代码如下:
subset = df.loc['Index1':'Index4', 'Name':'Country']
print(subset)
输出结果为:
Name Age Country
Index1 Tom 20 China
Index2 Nick 21 US
Index3 Jack 19 US
Index4 Robert 18 China
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于pandas数据样本行列选取的方法 - Python技术站