对于从数据框中选择一部分数据这类操作,可通过行索引(row index)和列索引(column index)来实现。在数据框中,行是观测值,列是特征,选择行有助于剖析数据,查看数据中的趋势和模式。
选择行的方法
- 使用行号(row number):使用DataFrame的iloc方法,通过对行号进行选择。
- 使用标签(row label):使用DataFrame的loc方法,通过对标签或标签列表进行选择。
选择行的方法1:使用行号
DataFrame的iloc方法可以通过位置索引,即行号来选择行。位置从0开始计数,如第一行的位置为0,第二行为1,以此类推。iloc用法如下:
df.iloc[start:end] # 选择所有列,从start到end-1行的数据
df.iloc[row_position] # 选择所有列,仅选择第row_position行的数据
df.iloc[start:end, start:end] # 从start到end-1行,从start到end-1列的数据
df.iloc[[index_list]] # 根据指定行的index选择相应行的values
例子:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5,5), columns=list('ABCDE'), index=list('abcde'))
print(df)
# 选择第2行的所有列
print(df.iloc[1,:])
# 选择第1到第3列,第2到第4行之间的数据
print(df.iloc[1:4, 0:3])
# 使用包含0、2、4的列表选择相应行
print(df.iloc[[0,2,4], :])
以上例子中,iloc方法会根据行号、列号的列表选择对应的数据。
选择行的方法2:使用标签
DataFrame的loc方法可以通过标签来选择行。标签可以是行索引(index)或标签名称(label name)。loc用法如下:
df.loc[row_labels, column_labels] # 根据指定的行、列标签选择数据
df.loc[start:end_row_labels, start:end_column_labels] # 根据行和列标签选择数据
例子:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5,5), columns=list('ABCDE'), index=list('abcde'))
print(df)
# 选择行标签为a的所有列
print(df.loc['a',:])
# 选择标签为1-3的所有列,标签为a-c的所有行
print(df.loc['a':'c', 'A':'C'])
以上例子中,先创建了一个5行5列的DataFrame,其中行标签为a,b,c,d,e,列标签为A,B,C,D,E。接下来,我们可以使用loc方法选择指定行、列标签对应的数据,或以切片方式选择。注意,选择行或列数据时也可以使用布尔索引(boolen index),其返回该标签为True的行或列数据,相关操作可以参考pandas的官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何根据列值从数据框架中选择行 - Python技术站