如何从多个键/值对在python中创建矩阵?

2024-09-29 21:31:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为我的数据分析生成一个矩阵。 目前,我有一个CSV文件,其中包含多个键值对,看起来与此类似(只是比原始数据集小一点)

      PL1           AL1           BL2
      ABCGD  41     BAHDG   13    HANDD   57
      KANSL  35     ABCGD   15    NAHDK   36

最后,我希望有一个这样的矩阵,其中0个条目表示所有未命中的内容:

       PL1     AL1    BL2
ABCGD   41     15      0
KANSL   35     0       0
BAHDG    0     13      0
HANDD    0      0      57
NAHDK    0      0      36

我对python还是相当陌生,不太确定如何解决这个问题。我已经将我的CSV文件传输到熊猫数据帧,并尝试使用numpy生成一个数组,但结果并不是我所期望的那样

我希望你能帮我解决这个问题。 谢谢


Tags: 文件csv原始数据条目矩阵键值al1pl1
1条回答
网友
1楼 · 发布于 2024-09-29 21:31:54

您正在寻找透视表。但是,首先需要融化数据,并在空白处拆分键/值对

import pandas as pd

df = pd.DataFrame({'PL1': {0: 'ABCGD  41', 1: 'KANSL  35'},
 'AL1': {0: 'BAHDG   13', 1: 'ABCGD   15'},
 'BL2': {0: 'HANDD   57', 1: 'NAHDK   36'}})


df = df.melt()

df[['key','value']] = df.value.str.split('\W+', expand=True)

df.pivot(index='key',columns='variable',values='value')

输出

variable  AL1  BL2  PL1
key                    
ABCGD      15  NaN   41
BAHDG      13  NaN  NaN
HANDD     NaN   57  NaN
KANSL     NaN  NaN   35
NAHDK     NaN   36  NaN

相关问题 更多 >

    热门问题