【问题标题】:creating dictionary from dataframe [duplicate]从数据框创建字典[重复]
【发布时间】:2021-07-05 16:52:41
【问题描述】:

我有以下数据框

a = [1,2,2,3,5]
b = [10,20,30,40,50]
df = pd.DataFrame(list(zip(a,b)), columns=['a','b'])

我想生成如下的字典

{1:10, 2:[20,30], 3:40, 5:50}

【问题讨论】:

    标签: python pandas dataframe dictionary


    【解决方案1】:

    使用groupby aggregate + Series.to_dict:

    d = df.groupby('a')['b'].agg(list).to_dict()
    
    {1: [10], 2: [20, 30], 3: [40], 5: [50]}
    

    或者根据系列中元素的数量有条件地聚合成list以获得准确的输出:

    d = df.groupby('a')['b'].agg(lambda s: list(s) if len(s) > 1 else s).to_dict()
    
    {1: 10, 2: [20, 30], 3: 40, 5: 50}
    

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2020-12-04
      • 2020-07-15
      • 2019-05-22
      • 2021-07-27
      • 2021-12-30
      • 2016-01-14
      • 2017-07-03
      相关资源
      最近更新 更多