首页 >后端开发 >Python教程 >如何在 Pandas 中将数据从宽格式重塑为长格式?

如何在 Pandas 中将数据从宽格式重塑为长格式?

DDD
DDD原创
2024-11-16 14:57:03264浏览

How to Reshape Data from Wide to Long Format in Pandas?

在 Pandas 中将数据从宽格式转换为长格式

在 pandas 中,数据帧可以从宽格式转换为长格式。当想要根据共享列和日期将数据框与另一个数据框合并时,这非常有用。

考虑以下数据框:

        AA  BB  CC
date
05/03     1   2   3
06/03     4   5   6
07/03     7   8   9
08/03     5   7   1

要将此数据框转换为长格式,请使用pandas.melt 或pandas.DataFrame.melt.

df = pd.DataFrame({
    'date' : ['05/03', '06/03', '07/03', '08/03'],
    'AA' : [1, 4, 7, 5],
    'BB' : [2, 5, 8, 7],
    'CC' : [3, 6, 9, 1]
}).set_index('date')
To convert, reset the index and then melt:
df = df.reset_index()
pd.melt(df, id_vars='date', value_vars=['AA', 'BB', 'CC'])

或者,在 .melt 之后使用 .reset_index 来删除指定 value_vars 的需要。

dfm = df.melt(ignore_index=False).reset_index()

生成的数据帧将看起来像:

     date variable  value
0   05/03       AA      1
1   06/03       AA      4
2   07/03       AA      7
3   08/03       AA      5
4   05/03       BB      2
5   06/03       BB      5
6   07/03       BB      8
7   08/03       BB      7
8   05/03       CC      3
9   06/03       CC      6
10  07/03       CC      9
11  08/03       CC      1

以上是如何在 Pandas 中将数据从宽格式重塑为长格式?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn