Pandas通过index选择并获取行和列

  • Post category:Python

想要通过index来选择并获取Pandas数据中的行和列,我们可以使用Pandas提供的iloc和loc两种方法来实现。

  1. 选择行和列

iloc方法可以通过传递整数或整数列表来选择行和列,如下所示:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({'name': ['John', 'Mike', 'Sarah'], 'age': [20, 25, 30], 'gender': ['M', 'M', 'F']}, index=['A', 'B', 'C'])

# 选择第二行第二列的元素
print(df.iloc[1, 1])  # 输出:25

# 选择第一行和第三行、第一列和第三列的元素
print(df.iloc[[0, 2], [0, 2]])  # 输出:

#     name gender
# A   John      M
# C  Sarah      F

loc方法可以通过传递行和列的标签来选择行和列,如下所示:

import pandas as pd

# 使用上面的数据框
df = pd.DataFrame({'name': ['John', 'Mike', 'Sarah'], 'age': [20, 25, 30], 'gender': ['M', 'M', 'F']}, index=['A', 'B', 'C'])

# 选择第二行第二列的元素
print(df.loc['B', 'age'])  # 输出:25

# 选择第一行和第三行、名字和性别这两列的元素
print(df.loc[['A', 'C'], ['name', 'gender']])  # 输出:

#     name gender
# A   John      M
# C  Sarah      F
  1. 选择一整行或一整列

iloc方法可以通过传递冒号(:)来选择一整行或一整列,如下所示:

import pandas as pd

# 使用上面的数据框
df = pd.DataFrame({'name': ['John', 'Mike', 'Sarah'], 'age': [20, 25, 30], 'gender': ['M', 'M', 'F']}, index=['A', 'B', 'C'])

# 选择第二行
print(df.iloc[1, :])  # 输出:name      Mike
                     #      age         25
                     #      gender       M
                     #      Name: B, dtype: object

# 选择第一列
print(df.iloc[:, 0])  # 输出:A     John
                     #      B     Mike
                     #      C    Sarah
                     #      Name: name, dtype: object

loc方法可以通过传递行或列的名称来选择一整行或一整列,如下所示:

import pandas as pd

# 使用上面的数据框
df = pd.DataFrame({'name': ['John', 'Mike', 'Sarah'], 'age': [20, 25, 30], 'gender': ['M', 'M', 'F']}, index=['A', 'B', 'C'])

# 选择第二行
print(df.loc['B'])  # 输出:name      Mike
                    #      age         25
                    #      gender       M
                    #      Name: B, dtype: object

# 选择名字这一列
print(df.loc[:, 'name'])  # 输出:A     John
                          #      B     Mike
                          #      C    Sarah
                          #      Name: name, dtype: object

以上就是Pandas通过index选择并获取行和列的详细攻略,希望能对您有所帮助。