关键词

Pandas中Series和DataFrame的索引实现

下面开始讲解Pandas中Series和DataFrame的索引实现的攻略。

1. 索引简介

在Pandas中,数据结构主要有两种,分别是Series和DataFrame。Series是一维的数组,DataFrame是二维的表格型数据结构。对于这两个数据类型,索引都扮演着非常重要的角色。索引可以帮助我们快速地定位数据,提高数据操作的效率。

在Pandas中,有两类索引:行索引和列索引。行索引是用于定位、筛选行数据的,列索引是用于筛选列数据的。接下来,我们将详细介绍Pandas中Series和DataFrame的索引实现。

2. Series的索引实现

Series是由一组数据及其对应的标签(索引)组成的。Series的索引与一维数组的索引类似,可以通过整数位置或标签名访问单个值。我们来看一下如何使用Series的索引实现。

2.1 创建Series对象

我们先来创建一组Series数据,以下是代码示例:

import pandas as pd

# 创建一个Series对象
s = pd.Series([1, 3, 5, 7, 9], index=['a', 'b', 'c', 'd', 'e'])
print(s)

输出结果如下:

a    1
b    3
c    5
d    7
e    9
dtype: int64

2.2 根据标签索引

我们可以通过索引的标签名来访问Series中的元素。以下是代码示例:

# 根据标签访问单个元素
print(s['b'])

输出结果如下:

3

我们也可以使用标签列表或切片来选择多个元素。以下是代码示例:

# 根据标签列表选择多个元素
print(s[['a', 'c', 'e']])

# 根据标签切片选择多个元素
print(s['b':'d'])

输出结果如下:

a    1
c    5
e    9
dtype: int64
b    3
c    5
d    7
dtype: int64

2.3 根据位置索引

我们可以使用整数位置来访问Series中的元素。以下是代码示例:

# 根据位置访问单个元素
print(s[1])

输出结果如下:

3

我们也可以使用整数列表或切片来选择多个元素。需要注意的是,使用位置索引时,末尾值对应的元素不会被选择。以下是代码示例:

# 根据位置列表选择多个元素
print(s[[0, 2, 4]])

# 根据位置切片选择多个元素
print(s[1:3])

输出结果如下:

a    1
c    5
e    9
dtype: int64
b    3
c    5
dtype: int64

3. DataFrame的索引实现

DataFrame是由一组数据和它们各自的标签组成的。DataFrame实际上由一系列的Series组成,每一列对应一系列数据。了解了如何操作Series的索引后,我们接下来看看如何操作DataFrame的索引。

3.1 创建DataFrame对象

我们先用以下代码来创建一个DataFrame数据:

import pandas as pd

# 创建一个DataFrame对象
data = {'name': ['Tom', 'Jerry', 'Lucy', 'Amy'],
        'age': [18, 19, 20, 21],
        'gender': ['M', 'M', 'F', 'F']}
df = pd.DataFrame(data)
print(df)

输出结果如下:

    name  age gender
0    Tom   18      M
1  Jerry   19      M
2   Lucy   20      F
3    Amy   21      F

3.2 行索引

和Series一样,行索引也可以根据位置或标签进行访问。以下是代码示例:

# 根据标签访问单行
print(df.loc[1])

# 根据标签列表选择多行
print(df.loc[[0, 2]])

# 根据标签切片选择多行
print(df.loc[1:3])

# 根据位置访问单行
print(df.iloc[1])

# 根据位置列表选择多行
print(df.iloc[[0, 2]])

# 根据位置切片选择多行
print(df.iloc[1:3])

输出结果如下:

name      Jerry
age          19
gender        M
Name: 1, dtype: object
   name  age gender
0   Tom   18      M
2  Lucy   20      F
    name  age gender
1  Jerry   19      M
2   Lucy   20      F
3    Amy   21      F
name    Jerry
age        19
gender      M
Name: 1, dtype: object
   name  age gender
0   Tom   18      M
2  Lucy   20      F
    name  age gender
1  Jerry   19      M
2   Lucy   20      F

3.3 列索引

列索引是用于筛选某些列,可以根据列的标签进行访问,也可以根据位置进行访问。以下是代码示例:

# 根据标签访问单列
print(df['name'])

# 根据标签列表选择多列
print(df[['name', 'age']])

# 根据位置访问单列
print(df.iloc[:, 0])

# 根据位置列表选择多列
print(df.iloc[:, [0, 1]])

输出结果如下:

0      Tom
1    Jerry
2     Lucy
3      Amy
Name: name, dtype: object
    name  age
0    Tom   18
1  Jerry   19
2   Lucy   20
3    Amy   21
0      Tom
1    Jerry
2     Lucy
3      Amy
Name: name, dtype: object
    name  age
0    Tom   18
1  Jerry   19
2   Lucy   20
3    Amy   21

以上是关于Pandas中Series和DataFrame的索引实现的完整攻略。

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

展开阅读全文