pandas实现按行选择的示例代码

  • Post category:Python

当需要选择数据集的某一行或某几行时,我们可以用pandas中的.loc.iloc进行行选择。其中.loc根据标签选择行,.iloc根据行号选择行。

使用.loc选择行

下面是一个示例数据集,其中包含了nameyearpopularity三列,我们以name列作为索引列。

import pandas as pd

data = {
    'name': ['John', 'Mary', 'Paul', 'Julia', 'Steve'],
    'year': [1988, 1992, 1985, 1995, 1998],
    'popularity': [0.5, 0.7, 0.2, 0.6, 0.4]
}

df = pd.DataFrame(data)
df = df.set_index('name')  # 以name列作为索引列
print(df)
       year  popularity
name                  
John   1988         0.5
Mary   1992         0.7
Paul   1985         0.2
Julia  1995         0.6
Steve  1998         0.4

我们可以使用.loc根据标签(也就是name索引列中的值)选择一行或多行数据。例如,选择JohnPaul两行:

print(df.loc[['John', 'Paul']])
      year  popularity
name                 
John  1988         0.5
Paul  1985         0.2

使用.iloc选择行

我们同样可以使用.iloc根据行号选择一行或多行数据。例如,选择第1行和第3行:

print(df.iloc[[0, 2]])
      year  popularity
name                 
John  1988         0.5
Paul  1985         0.2

除了以上两个例子,我们还可以根据需求将.iloc.loc配合使用进行选择。在实际工作中常常会出现比如想要选择2012年到2015年之间的全部数据的情况,这时我们就可以使用.loc.iloc进行行选择。

总的来说,通过pandas的.loc.iloc两个方法,我们可以实现按行选择数据集中的一行或多行,提高了指导性,能在数据分析中得到广泛应用。