[英]How can I pivot AND stack a Pandas DataFrame?
作为 Pandas 的一个相当少见的用户,我想知道如何最好地使用 pivot 一列(代表时间),使其水平流动,同时基于另一列或索引堆叠 rest。
这就是我的意思:
data = [
[2018, "Alex", 172, 61], [2019, "Alex", 173, 62], [2020, "Alex", 173, 63],
[2018, "Bill", 168, 59], [2019, "Bill", 168, 59], [2020, "Bill", 169, 60],
[2018, "Cody", 193, 67], [2019, "Cody", 194, 69], [2020, "Cody", 194, 68],
]
df = pd.DataFrame(data, columns=["year", "name", "height", "weight"])
这使:
year name height weight
2018 Alex 172 61
2019 Alex 173 62
2020 Alex 173 63
2018 Bill 168 59
2019 Bill 168 59
2020 Bill 169 60
2018 Cody 193 67
2019 Cody 194 69
2020 Cody 194 68
我想 pivot 这个 DataFrame 水平流动,使年份水平流动(升序),同时基本上堆叠按名称分组的所有其他列,以便我的 dataframe 看起来像这样:
Alex 2018 2019 2020
height 172 173 173
weight 61 62 63
Bill
height 168 168 169
weight 59 59 60
Cody
height 193 194 69
weight 67 194 68
总之,我想在这里完成三件事:
网上有很多关于单独旋转和堆叠的资源,但通常不像我试图做的那样在一起。
尝试这个:
df.set_index(['year', 'name']).stack().unstack(0)
>>>
year 2018 2019 2020
name
Alex height 172 173 173
weight 61 62 63
Bill height 168 168 169
weight 59 59 60
Cody height 193 194 194
weight 67 69 68
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.