【问题标题】:python dictionary to pandas dataframe with multiple columnspython字典到具有多列的pandas数据框
【发布时间】:2017-05-02 17:20:53
【问题描述】:

我有以下 python 字典:

d= {'data'      : Counter({ 'important' : 2,
                        'very'      : 3}),
    'analytics' : Counter({ 'boring'    : 5,
                        'sleep'     : 3})
    }

我想将它保存为以下格式的 pandas 数据框:

category  | word      | count
  data    | important | 2
  data    | very      | 3
analytics | boring    | 5
analytics | sleep     | 3

我尝试了以下方法,但都没有成功

df = pd.DataFrame(d.items()) 

df = pd.DataFrame.from_dict(d, orient='index').reset_index()

df = pd.DataFrame(data)

【问题讨论】:

    标签: python pandas dictionary dataframe


    【解决方案1】:

    你可以使用stack:

    df = pd.DataFrame(d).stack().reset_index()
    df.columns = ['word','category','count']
    print(df)
            word   category  count
    0     boring  analytics    5.0
    1  important       data    2.0
    2      sleep  analytics    3.0
    3       very       data    3.0
    

    df = pd.DataFrame.from_dict(d, orient='index').stack().reset_index()
    df.columns = ['category','word','count']
    print(df)
    
        category       word  count
    0  analytics     boring    5.0
    1  analytics      sleep    3.0
    2       data  important    2.0
    3       data       very    3.0
    

    嵌套列表理解的另一种解决方案:

    df = pd.DataFrame([(key,key1,val1) for key,val in d.items() for key1,val1 in val.items()])
    df.columns = ['category','word','count']
    print(df)
        category       word  count
    0  analytics     boring      5
    1  analytics      sleep      3
    2       data  important      2
    3       data       very      3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-12
      • 2016-04-07
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      相关资源
      最近更新 更多