关键词

pandas DataFrame索引行列的实现

下面是关于“Pandas DataFrame索引行列的实现”的攻略。

Pandas DataFrame的索引

Pandas DataFrame是一种二维表格数据结构,由于其数据处理和分析的便捷性,近年来受到越来越多数据科学家和分析师的青睐。在使用 Pandas DataFrame 时,最常用的方式就是使用索引来定位并处理表格中的数据。

行索引

Pandas DataFrame 数据结构中,行索引默认是从0开始自增的数字索引。行索引可以通过 df.index 属性访问,该属性返回一个 Pandas Index 对象,该对象与 Python 列表类似。

示例如下:

import pandas as pd

data = {'name': ['A', 'B', 'C', 'D', 'E'],
        'age': [20, 22, 19, 25, 21],
        'gender': ['M', 'F', 'M', 'F', 'M']}

df = pd.DataFrame(data)

print(df.index)

# 输出结果为 RangeIndex(start=0, stop=5, step=1)

在以上示例中,df.index 返回的是一个 RangeIndex 对象,它表示行索引从0开始自增的索引,一共包含5行数据。

此外,我们还可以为 Pandas DataFrame 指定自定义的行索引,例如使用日期、文本、整数等其他类型的索引。示例如下:

import pandas as pd

data = {'name': ['A', 'B', 'C', 'D', 'E'],
        'age': [20, 22, 19, 25, 21],
        'gender': ['M', 'F', 'M', 'F', 'M']}

# 创建以日期为行索引的 Pandas DataFrame
df = pd.DataFrame(data, index=pd.date_range('20220101', periods=5))

print(df.index)

# 输出结果为 DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
#                '2022-01-05'],
#               dtype='datetime64[ns]', freq='D')

在以上示例中,我们使用 Pandas 中的 pd.date_range() 函数创建了一个日期范围,并将其作为行索引传递给了 pd.DataFrame() 函数,从而创建了一个以日期为索引的 Pandas DataFrame 对象。运行结果显示了我们自定义的日期索引。

列索引

除了行索引,我们还可以使用列索引来访问 Pandas DataFrame 对象中的列。在 Pandas DataFrame 中,可以通过 df.columns 属性访问列索引,该属性返回一个 Pandas Index 对象,该对象与 Python 列表类似。

示例如下:

import pandas as pd

data = {'name': ['A', 'B', 'C', 'D', 'E'],
        'age': [20, 22, 19, 25, 21],
        'gender': ['M', 'F', 'M', 'F', 'M']}

df = pd.DataFrame(data)

print(df.columns)

# 输出结果为 Index(['name', 'age', 'gender'], dtype='object')

在以上示例中,df.columns 返回的是一个 Index 对象,它表示列索引包含了表格中的所有列。

使用索引访问数据

在 Pandas DataFrame 中,可以通过行列索引来访问表格中的数据。其中,行列索引的几种常见访问方式如下:

  • 使用 .loc[] 方法通过行列索引(标签)访问数据;
  • 使用 .iloc[] 方法通过行列位置(整数)访问数据;
  • 直接使用列名称访问数据。

在下面的示例中,我们将展示这几种索引方式的使用方法,以及它们之间的异同。

示例1:使用.loc[]方法访问数据

import pandas as pd

data = {'name': ['A', 'B', 'C', 'D', 'E'],
        'age': [20, 22, 19, 25, 21],
        'gender': ['M', 'F', 'M', 'F', 'M']}

df = pd.DataFrame(data)

# 使用.loc[]方法获取第2行(行索引为1)和第3列(列索引为'gender')的数据
print(df.loc[1, 'gender'])

# 输出结果为 F

在以上示例中,我们使用 .loc[] 方法访问了 DataFrame 中第2行第3列的数据。需要注意的是,这里使用的是行列的标签值,而不是行列的位置。

示例2:使用.iloc[]方法访问数据

import pandas as pd

data = {'name': ['A', 'B', 'C', 'D', 'E'],
        'age': [20, 22, 19, 25, 21],
        'gender': ['M', 'F', 'M', 'F', 'M']}

df = pd.DataFrame(data)

# 使用.iloc[]方法获取第2行(行索引为1)和第3列(列索引为2)的数据
print(df.iloc[1, 2])

# 输出结果为 F

在以上示例中,我们使用 .iloc[] 方法访问了 DataFrame 中第2行第3列的数据。需要注意的是,这里使用的是行列的位置,而不是行列的标签值。

示例3:直接使用列名称访问数据

import pandas as pd

data = {'name': ['A', 'B', 'C', 'D', 'E'],
        'age': [20, 22, 19, 25, 21],
        'gender': ['M', 'F', 'M', 'F', 'M']}

df = pd.DataFrame(data)

# 直接使用列名称获取'gender'列的所有数据
print(df['gender'])

# 输出结果为
# 0    M
# 1    F
# 2    M
# 3    F
# 4    M
# Name: gender, dtype: object

在以上示例中,我们直接使用了 Pandas DataFrame 中的列名称访问了gender列的所有数据。

小结

使用 Pandas DataFrame 操作数据时,掌握行列索引的使用方法是至关重要的。在访问数据时,以 .loc[].iloc[] 方法为主,可以使用它们的行列标签或位置来访问数据。如果使用列名称来访问数据,则使用 df['column_name']的方式即可。

本文链接:http://task.lmcjl.com/news/16713.html

展开阅读全文