【问题标题】:Pivoting dataframe but ignoring index旋转数据框但忽略索引
【发布时间】:2022-09-27 16:52:03
【问题描述】:

假设我有以下数据集。每周保证只有两个观察结果:

data = pd.DataFrame(
    {
        \"week\": [\"2022-09-26\", \"2022-09-26\", \"2022-09-19\", \"2022-09-19\", \"2022-09-12\", \"2022-09-12\"],
        \"name\": [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"],
        \"counts\": [10, 20, 30, 40, 50, 60]
    }
)

我想做的是创建一个多级列,其中第一级是周,第二级是namecounts。每行将显示所有 3 周的名称和计数。因此,输出将是 2 行深。

不幸的是,以下不是我所追求的:

  • 你能提供预期的输出作为 DataFrame 吗?
  • 你想要data.pivot(index=\'week\', columns=\'name\', values=\'counts\')data.set_index([\'week\', \'name\']) 中的哪一个?

标签: pandas dataframe


【解决方案1】:

干得好。希望这可以帮助

df.reset_index().pivot(index='index',columns=['week'],values=['name','counts']).reorder_levels([1,0],axis='columns')


week    2022-09-12  2022-09-19  2022-09-26  2022-09-12  2022-09-19  2022-09-26
name    name    name    counts  counts  counts
index                       
0   NaN NaN a   NaN NaN 10
1   NaN NaN b   NaN NaN 20
2   NaN c   NaN NaN 30  NaN
3   NaN d   NaN NaN 40  NaN
4   e   NaN NaN 50  NaN NaN
5   f   NaN NaN 60  NaN NaN

【讨论】:

    猜你喜欢
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2021-07-18
    • 1970-01-01
    • 2011-02-21
    相关资源
    最近更新 更多