Python pandas数据帧重塑

2024-06-25 07:04:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉python和数据帧。 我有一个具有以下结构的数据帧:

ID   |DATE       |COLUMN_1|COLUMN_2|COLUMN_3|

ID_1 |2017-04-01 |VALA    |VALB    |VALC    |

ID_1 |2016-12-31 |VALD    |VALE    |VALF    |

ID_1 |2016-09-24 |VALG    |VALH    |VALI    |

ID_2 |2008-06-30 |VALJ    |VALK    |VALL    |

ID_2 |2008-03-31 |VALM    |VALN    |VALO    |

ID_2 |2007-12-31 |VALP    |VALQ    |VALR    |

ID_2 |2007-09-30 |VALS    |VALT    |VALU    |

ID_3 |2017-04-01 |VALV    |VALW    |VALY    |

ID_3 |2016-12-31 |VALZ    |VALZ1   |VALZ2   |

我需要改变它的形状,以便它按日期列降序进行分组,并且ID+现有列的所有组合都将扩展为新列。标题和数据应该如下所示:

^{pr2}$

看了一下here,它让我开始了,但是不能完全得到相同的输出结构。在


Tags: 数据iddatecolumn结构valivalevala
1条回答
网友
1楼 · 发布于 2024-06-25 07:04:13

使用:

  • 首先通过^{}+^{}重塑形状
  • ^{}-用于索引和列中MultiIndex的第二级
  • list comprehension在列中增加Multiindex

df = (df.set_index(['DATE', 'ID'])
       .unstack()
       .sort_index(ascending=False)
       .sort_index(axis=1, level=1))
df.columns = ['{}_{}'.format(b,a) for a, b in df.columns]

^{pr2}$

相关问题 更多 >