当数据以宽度形式呈现时,某些信息通常分散在多个列中。我们需要一个更标准化的方法来表示数据。 一种常见的方法是将数据框转换为更整洁的形式,其中每个主要变量与单独的观察值相对应。 Pandas库中的stack()函数可以将宽度数据框转换为整齐的形式,该函数将列转换为行,将数据框从宽度形式变为长度形式。
以下是使用pandas库中的stack()函数将宽幅数据框转换为整洁数据框的步骤:
1.导入必要的库和创建数据框
import pandas as pd
# 开始创建一个宽框数据框
data = {'地区': ['华北', '华东', '华南'],
'1月天气': ['晴', '阴', '雨'],
'2月天气': ['阴', '雨', '雪'],
'3月天气': ['雨', '阴', '晴']}
df = pd.DataFrame(data)
print(df)
输出结果如下:
地区 | 1月天气 | 2月天气 | 3月天气 | |
---|---|---|---|---|
0 | 华北 | 晴 | 阴 | 雨 |
1 | 华东 | 阴 | 雨 | 阴 |
2 | 华南 | 雨 | 雪 | 晴 |
- 使用stack()函数转换数据框
代码如下:
df_stacked = df.set_index('地区').stack().reset_index()
df_stacked.columns = ['地区', '月份', '天气']
print(df_stacked)
输出结果如下:
地区 | 月份 | 天气 | |
---|---|---|---|
0 | 华北 | 1月天气 | 晴 |
1 | 华北 | 2月天气 | 阴 |
2 | 华北 | 3月天气 | 雨 |
3 | 华东 | 1月天气 | 阴 |
4 | 华东 | 2月天气 | 雨 |
5 | 华东 | 3月天气 | 阴 |
6 | 华南 | 1月天气 | 雨 |
7 | 华南 | 2月天气 | 雪 |
8 | 华南 | 3月天气 | 晴 |
- 成功转换为整洁数据框
在我们把地区作为特定的行,月份和天气都作为新的变量转换出来后,我们就得到了一个相对更整洁的数据框。实现了将原数据框的宽度数据转换为更标准的表示。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用Pandas stack()将宽幅数据框转换为整齐的数据框? - Python技术站