【问题标题】:How to change row fields to column header in python?如何在python中将行字段更改为列标题?
【发布时间】:2019-10-03 00:37:55
【问题描述】:

我的数据格式如下

<table>
<tbody>
    <tr><th>A</th><th>B</th><th>C</th><th>D</th></tr>
    <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
    <tr><td>2</td><td>1</td><td>3</td><td>2</td></tr>
    <tr><td>3</td><td>4</td><td>2</td><td>1</td></tr>
    <tr><td>4</td><td>2</td><td>1</td><td>3</td></tr>
</tbody>
</table>

我想把它转换成以下格式:

<table>
<tbody>
    <tr><th>1</th><th>2</th><th>3</th><th>4</th></tr>
    <tr><td>A</td><td>A</td><td>A</td><td>A</td></tr>
    <tr><td>B</td><td>B</td><td>C</td><td>B</td></tr>
    <tr><td>C</td><td>B</td><td>C</td><td>D</td></tr>
    <tr><td>D</td><td>C</td><td>D</td><td> </td></tr>
    <tr><td> </td><td>D</td><td> </td><td> </td></tr>
</tbody>
</table>

我尝试过使用 Excel 数据透视表、Python 数据透视表,但我无法获得想要的结果。

你能帮帮我吗?

谢谢, 纳赛尔

【问题讨论】:

  • 你也在使用pandas吗?
  • 当然,熊猫,我现在也在 R 中尝试。
  • 您在pandas 中尝试过什么?请注意,您的预期输出不是表格(可能是错字,但请考虑修复它)。

标签: python pivot-table transform data-cleaning


【解决方案1】:

试试下面的代码。希望这会有所帮助:

import pandas as pd
df = pd.DataFrame({'A':[1,2,3,4],'B':[2,1,3,2],'C':[3,4,2,1],'D':[4,2,1,3]});
data = {'A':[1,2,3,4],'B':[2,1,3,2],'C':[3,4,2,1],'D':[4,2,1,3]}

将数据转换为所需的格式..

new_data = dict()
for key, value in data.items():
    for data1 in value:
        if data1 in new_data.keys():
            if key in new_data[data1]:
                pass
            else:
                new_data[data1].append(key)
        else:
            new_data[data1]=[key]

如果每个键的值长度不同,则 pandas 不会为传递的字典创建数据框。因此在这种情况下将值长度转换为与 4 相同。

for key ,value in new_data.items():
    dif =  4 - len(value)
    new_data[key] = value + [None]*dif

数据的输出将是:

new_data

{1: ['A', 'B', 'C', 'D'],
 2: ['A', 'B', 'C', 'D'],
 3: ['A', 'B', 'C', 'D'],
 4: ['A', 'C', 'D', None]}

现在将其转换为数据框:

    1   2   3   4
0   A   A   A   A
1   B   B   B   C
2   C   C   C   D
3   D   D   D   None

【讨论】:

  • 非常感谢 Shishir 的节目。它像黄油一样光滑。愿你永远幸福!
猜你喜欢
  • 2021-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
  • 2021-06-17
  • 2021-01-09
相关资源
最近更新 更多