【问题标题】:How to modify the following dataframe using groupby/pivot?如何使用 groupby/pivot 修改以下数据框?
【发布时间】:2018-02-21 22:06:42
【问题描述】:

我有以下熊猫数据框:

我想通过以下方式更改此数据框: 我希望将 ID 列作为索引,并将每个索引的月份放在名为月份的列中,然后所有值如下:

ID    MONTH  VAL
1     Jan    nan
1     Feb    nan
1     Mar    nan
1     Apr    nan
1     May    nan
1     Jun    nan
1     Jul    nan
1     Aug    94.0000
1     Sep    113.0000
1     Oct    21.0000
1     Nov    nan
2     Jan    107.00000
.
.
.
7     Nov    nan

月份的顺序并不重要。有什么简单的方法吗?

【问题讨论】:

  • 你可以发布df.head(10).to_dict()的输出,而不是发布图片。这将帮助我们测试解决方案。

标签: python pandas group-by pivot


【解决方案1】:

尝试 stack 并将 dropnaparameter 设置为 False:

df.set_index('ID').stack(dropna=False)

@PaulH 对下面 cmets 的观察是正确的。

将该列索引移动到从宽数据帧转换为长数据帧的行索引。

【讨论】:

  • 我认为您需要先在'ID' 列上设置索引
  • 您需要对剩余的列进行“分类”以便正确排序
  • OP 声明顺序并不重要。
  • 好的,我理解了第一部分,但不理解我必须从宽数据帧转换为长数据帧的部分。因为在堆栈之后我获得了一个系列
  • @MarcoMiglionico 这正是数据框的外观。这只是一个声明。不导入解决方案。
猜你喜欢
  • 1970-01-01
  • 2018-10-11
  • 2013-08-26
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多