【问题标题】:Convert Dictionary Unequal Items to Data-frame [duplicate]将字典不等项转换为数据框[重复]
【发布时间】:2019-02-17 12:51:37
【问题描述】:

我有一个包含 3000 个键的字典,每个键都有一个列表作为其值,

示例:

dictionary = {'yup': ['chocolate', 'pizza', 'rainbows'], 'tape': ['what', 'milk'], ....}

我想将此字典转换为数据库,但由于我的值不相等,我无法使用 pandas 命令“pd.DataFrame(dictionary)”。我收到错误消息“数组必须都是相同的长度”。

我的问题是,我如何仍然创建一个数据框(转置它)并在没有数据的地方保留空单元格。

例子:

index   column1      column2   column3 

`'yup'  'chocolate'  'pizza'    'rainbows`'

'tape'  'what'       'milk'     blank

【问题讨论】:

    标签: python python-3.x pandas dictionary dataframe


    【解决方案1】:

    将您的值转换为pd.Series

    df = pd.DataFrame({k:pd.Series(v) for k,v in dictionary.items()}).T
    
                  0      1         2
    tape       what   milk       NaN
    yup   chocolate  pizza  rainbows
    

    或者:

    df = pd.DataFrame.from_dict({k:pd.Series(v) for k,v in dictionary.items()},orient='index')
    
                  0      1         2
    tape       what   milk       NaN
    yup   chocolate  pizza  rainbows
    

    【讨论】:

      【解决方案2】:

      使用values 作为值,使用keys 作为索引

      df = pd.DataFrame(list(dictionary.values()), index=dictionary.keys())
      
              0           1       2
      yup     chocolate   pizza   rainbows
      tape    what        milk    None
      

      如果需要名为index的列

      df.reset_index()
      
          index   0           1       2
      0   yup     chocolate   pizza   rainbows
      1   tape    what        milk    None
      

      【讨论】:

        猜你喜欢
        • 2016-03-23
        • 2019-10-19
        • 2021-06-22
        • 2017-04-19
        • 2018-09-22
        • 2021-10-31
        • 2022-07-05
        • 2020-09-08
        相关资源
        最近更新 更多