Pandas-具有相同标题的多个标签的数据透视和重新排列表

伊恩·希尔加特·马蒂苏斯(Ian Hilgart Martiszus)

我有一个带有标签的xlsx文件,可以记录多年的数据。每个选项卡都包含一个包含许多列的表,该表的结构如下:

+-----------+-------+-------------------------+----------------------+
|   City    | State | Number of Drivers, 2019 | Number of Cars, 2019 |
+-----------+-------+-------------------------+----------------------+
| LA        | CA    |                     123 |                 10.0 |
| San Diego | CA    |                     456 |                 2345 |
+-----------+-------+-------------------------+----------------------+

我想重新排列表格,使其看起来像这样,并针对xlsx中的每个标签执行此操作:

+-----------+-------+------+-------------------+---------------+
|   City    | State | Year |   Measure Name    | Measure Value |
+-----------+-------+------+-------------------+---------------+
| LA        | CA    | 2019 | Number of Drivers |           123 |
| San Diego | CA    | 2019 | Number of Drivers |           456 |
| LA        | CA    | 2019 | Number of Cars    |            10 |
| San Diego | CA    | 2019 | Number of Cars    |          2345 |
+-----------+-------+------+-------------------+---------------+

为此有很多可动之处,并且要使最终格式正确还有些棘手。

贝尼

我们这样做melt,然后joinstr.split

s=df.melt(['City','State'])
s=s.join(s.variable.str.split(',',expand=True))
Out[120]: 
       City State              variable   value                0     1
0        LA    CA  NumberofDrivers,2019   123.0  NumberofDrivers  2019
1  SanDiego    CA  NumberofDrivers,2019   456.0  NumberofDrivers  2019
2        LA    CA     NumberofCars,2019    10.0     NumberofCars  2019
3  SanDiego    CA     NumberofCars,2019  2345.0     NumberofCars  2019

# if you need change the name adding .rename(columns={}) at the end 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重新排列 Pandas 数据帧

在 Pandas 数据透视表中重新排列不同级别的列

在Python Pandas中从Excel导入,并将元数据标题重新排列为列数据

Pandas 数据框 - 将行索引值重新排列为列标题

在Pandas数据框中具有多个索引的数据透视

在pandas数据框中基于顺序的列重新排列

重新排列数据框表 Pandas Python

重新排列python pandas数据框(部分转置)

读取,选择和重新排列Pandas中的列

使用For循环对Pandas DataFrame进行排序和重新排列

使用熊猫重新排列具有相同列标题的数据框单元格

Python:对列表中具有相同值的数字进行计数和重新排列

具有多索引的Pandas子数据透视表和总数据透视表

具有Pandas Dataframe的数据透视表(?)

具有多个值和一个热编码(Python,Pandas)的数据帧相同的键?

比较具有相同ID的Pandas数据框的多个值

重新格式化和重新排列Python Pandas系列中的日期

使用 python pandas 数据框重新排列连续数据日志

如何将包含坐标列表的Pandas DataFrame重新排列到表中?

Pandas:拆分数据帧行并重新排列列值

如何在 Pandas 数据框中使用 NaN 重新排列/移动完整的行?

重新排列数据框列的R代码的Python / pandas等同于什么?

在多列上使用自定义顺序重新排列 Pandas 数据框的行

将 Pandas 数据框从 (id, name:a, value:b) 重新排列为 (id, a: b)

Pandas 基於日期時間索引重新排列和插入時間序列

重新排列聊天标签的顺序,使具有最新接收或发送的消息的标签位于列表顶部

Pandas:如何包含多个数据透视表的所有列和所有索引

带有列表项pandas数据框的数据透视表

如何在Pandas中创建具有降序和边距的数据透视表