質問: {'32':'131', '32':'192', '32':'1962'} の場合だと{32:[131,192,1962]} でしょうか。 **追記** 例としてデータフレームを作成しました。 ``` import pandas as pd import numpy as np pd.DataFrame({'pid': ['8', '8', '1', '32', '32', '32', '32', '32', '3'], 'col_1': np.arange(3, 12), 'nid': ('11', '19', '8', '354', '5', '64', '432', '142', '2')}) ``` **再追記** metropolisさんの方法に補足です。 `df.groupby('pid').nid.apply(lambda x: x.to_list()).to_dict()` とすると要素一つのものもリストになるようです。
回答: `groupby` でまとめて `apply` で形式を整えます。 ``` >>> df.groupby('pid').nid.apply(lambda x: x.iloc[0] if len(x)==1 else x.to_list()).to_dict() {'1': '8', '3': '2', '32': ['354', '5', '64', '432', '142'], '8': ['11', '19']} ```