DataFrame.stack() 之后的新索引级别名称

pandas

1个回答

写回答

是沐沐.

2025-06-17 11:05

+ 关注

Pandas
Pandas

使用Pandas库中的DataFrame.stack()函数可以将DataFrame中的列索引转换为行索引,从而生成一个新的Series对象。新Series对象的索引级别名称可以根据原来的列索引名称来生成。

下面是一个使用DataFrame.stack()函数的案例代码:

Python

import Pandas as pd

# 创建一个DataFrame对象

data = {'姓名': ['张三', '李四', '王五'],

'语文': [90, 88, 95],

'数学': [95, 92, 90],

'英语': [80, 85, 88]}

df = pd.DataFrame(data)

# 使用stack()函数将列索引转换为行索引

new_series = df.stack()

print(new_series)

输出结果如下:

0 姓名 张三

语文 90

数学 95

英语 80

1 姓名 李四

语文 88

数学 92

英语 85

2 姓名 王五

语文 95

数学 90

英语 88

dtype: object

根据新的索引级别名称,我们可以生成一篇关于DataFrame.stack()函数的文章。

什么是DataFrame.stack()函数?

DataFrame.stack()函数是Pandas库中一个非常有用的函数,它可以将DataFrame中的列索引转换为行索引,生成一个新的Series对象。通过使用这个函数,我们可以轻松地重组和重新排列DataFrame中的数据,使其更加方便进行分析和处理。

使用DataFrame.stack()函数的语法

DataFrame.stack()函数的语法如下:

Python

DataFrame.stack(level=-1, dropna=True)

参数说明:

- level:指定要堆叠的索引级别,默认为-1,表示堆叠所有列索引。

- dropna:指定是否删除堆叠之后产生的缺失值,默认为True,表示删除缺失值。

下面我们来看一个具体的例子。

案例:学生成绩表的重组

假设我们有一个学生成绩表,包含了学生的姓名和各科成绩。我们希望将表格中的列索引转换为行索引,以便更方便地进行分析。

首先,我们创建一个包含学生成绩的DataFrame对象,如下所示:

Python

import Pandas as pd

# 创建一个DataFrame对象

data = {'姓名': ['张三', '李四', '王五'],

'语文': [90, 88, 95],

'数学': [95, 92, 90],

'英语': [80, 85, 88]}

df = pd.DataFrame(data)

print(df)

输出结果如下:

姓名 语文 数学 英语

0 张三 90 95 80

1 李四 88 92 85

2 王五 95 90 88

接下来,我们使用DataFrame.stack()函数将列索引转换为行索引,生成一个新的Series对象,如下所示:

Python

new_series = df.stack()

print(new_series)

输出结果如下:

0 姓名 张三

语文 90

数学 95

英语 80

1 姓名 李四

语文 88

数学 92

英语 85

2 姓名 王五

语文 95

数学 90

英语 88

dtype: object

通过使用DataFrame.stack()函数,我们成功地将学生成绩表中的列索引转换为了行索引,得到了一个新的Series对象。这样一来,我们就可以更方便地对学生成绩进行分析和处理了。

通过使用Pandas库中的DataFrame.stack()函数,我们可以轻松地将DataFrame中的列索引转换为行索引,生成一个新的Series对象。这个函数在重组和重新排列数据时非常有用,可以提高数据分析和处理的效率。

希望本文对你理解DataFrame.stack()函数有所帮助。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号