📅  最后修改于: 2023-12-03 15:04:33.985000             🧑  作者: Mango
pandas.lreshape()函数用于对DataFrame进行变形操作。它有助于将宽格式的DataFrame变为长格式,以便数据分析和可视化。在本文中,我们将介绍pandas.lreshape()函数及其使用方法,并提供一些示例。
pandas.lreshape(df, mapping)
我们将以以下示例DataFrame为例:
import pandas as pd
df = pd.DataFrame({'id': [1, 2, 3, 4],
'A_score_1': [10, 20, 30, 40],
'A_score_2': [50, 60, 70, 80],
'B_score_1': [90, 100, 110, 120],
'B_score_2': [130, 140, 150, 160]})
print(df)
输出结果如下:
id A_score_1 A_score_2 B_score_1 B_score_2
0 1 10 50 90 130
1 2 20 60 100 140
2 3 30 70 110 150
3 4 40 80 120 160
首先,我们可以使用pandas.melt()函数将其转换为长格式:
df_melted = pd.melt(df, id_vars=['id'], var_name='scores', value_name='score')
print(df_melted)
输出结果如下:
id scores score
0 1 A_score_1 10
1 2 A_score_1 20
2 3 A_score_1 30
3 4 A_score_1 40
4 1 A_score_2 50
5 2 A_score_2 60
6 3 A_score_2 70
7 4 A_score_2 80
8 1 B_score_1 90
9 2 B_score_1 100
10 3 B_score_1 110
11 4 B_score_1 120
12 1 B_score_2 130
13 2 B_score_2 140
14 3 B_score_2 150
15 4 B_score_2 160
接下来,使用pandas.lreshape()函数将其重新调整为宽格式:
df_wide = pd.lreshape(df_melted, {'A_score': ['A_score_1', 'A_score_2'], 'B_score': ['B_score_1', 'B_score_2']})
print(df_wide)
输出结果如下:
id A_score B_score
0 1 10 90
1 2 20 100
2 3 30 110
3 4 40 120
4 1 50 130
5 2 60 140
6 3 70 150
7 4 80 160
我们可以看到,pandas.lreshape()函数将原始DataFrame重新转换为宽格式,并将A_score和B_score分别作为新的列名。
pandas.lreshape()函数可以帮助我们将宽格式的DataFrame转换为长格式,并且很容易使用。当我们需要将一个DataFrame旋转成多列时,pandas.lreshape()是一个非常实用的函数。