【问题标题】:Pandas Dataframe to dictionary groupby indexPandas Dataframe 到字典 groupby 索引
【发布时间】:2018-02-28 04:49:07
【问题描述】:

我有一个包含 3 列的数据框,它们都有字符串值。数据框是这种形式:

Key Word    Synonym    Alternatives
   A          word1         NaN
   A          word2         NaN
   A          word3         word11
   B          word4         word12
   B          word5         NaN 
   B          word6         word13
   C          word7         word14
   C          word8         NaN
   C          word9         NaN
   D          word10        word15

我想要的是将其转换为字典,该字典将根据 Key Word 列进行分组,并且对于每个 key_word,返回所有相应的同义词和替代同义词。所以,A 的所有值都将引用存在于SynonymAlternatives 中的对应值A 等。有没有办法做到这一点?提前谢谢你。

【问题讨论】:

    标签: python pandas dictionary dataframe


    【解决方案1】:

    我认为你需要stack 来删除NaNs,然后需要groupbylist。最后通话to_dict

    d = df.set_index('Key').stack().groupby('Key').apply(list).to_dict()
    print (d)
    {'B': ['word4', 'word12', 'word5', 'word6', 'word13'], 
     'D': ['word10', 'word15'], 
     'C': ['word7', 'word14', 'word8', 'word9'], 
     'A': ['word1', 'word2', 'word3', 'word11']}
    

    【讨论】:

    • 优雅! {i: x.values.tolist() for i, x in df.set_index('Key').stack().groupby('Key')} 对于较大的数据帧来说非常快,不值得。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 2017-12-22
    • 2018-12-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多