【问题标题】:How can I create a matrix in python from multiple key/value pairs?如何在 python 中从多个键/值对创建矩阵?
【发布时间】:2021-11-12 11:03:24
【问题描述】:

我想为我的数据分析生成一个矩阵。 目前我有一个包含多个键值对的 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 文件传输到了 pandas 数据框,并尝试使用 numpy 生成一个数组,但结果并不完全符合我的预期。

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

【问题讨论】:

    标签: python arrays pandas dataframe numpy


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多