【发布时间】:2019-05-08 00:00:16
【问题描述】:
我正在处理熊猫的 csv。我试图打破这样的行:
| col1 | col2 | jan | feb | mar |
|-------|-------|-----|-----|-----|
| name1 | place | 23 | 32 | 42 |
| name2 | place | 43 | 666 | 3 |
| name3 | place | 2 | 532 | 420 |
进入这个:
| col1 | col2 |months | quantity |
|-------|-------|-------|----------|
| name1 | place | jan | 23 |
| name1 | place | feb | 32 |
| name1 | place | mar | 42 |
| name2 | place | jan | 43 |
| name2 | place | feb | 666 |
| name2 | place | mar | 3 |
| name3 | place | jan | 2 |
| name3 | place | feb | 532 |
| name3 | place | mar | 420 |
有什么函数可以在 pandas 上分解行吗?
pandas.melt() 无法按我的意愿工作,因为它没有创建我想要的订单。
【问题讨论】:
-
这是
unpivot的典型案例,在pandas 中我们称之为melt。使用以下命令获取输出:pd.melt(df, id_vars=['col1', 'col2']) -
@Erfan 而
melt产生相同的 set 数据,订单与 OP 要求的不同,这可能很重要,也可能不重要。 -
@QuangHoang 添加
.sort_values('col1') -
@DYZ 真的吗?如果
col1在原始数据框中没有排序怎么办? -
@QuangHoang 然后,不:)