通过(pandas)从组中的多个列创建字典

时间:2017-07-25 18:11:48

标签: python pandas dataframe group-by

我的数据框有' id_one'哪个可以有多个id_twos'对于每个id。每个id_two还具有存储在其他列中的许多描述性特征。 这是一个示例数据集。

d = {'id_one' : pd.Series([123, 123, 123]),
     'id_two' : pd.Series([456, 567, 678]),
     'descriptor' : pd.Series(['blue','yellow', 'green'])}

df = pd.DataFrame(d)

我需要以每行{id_one'一行的形式获取我的数据框,其中在' col a'我存储了id_one'并且在' col'我存储了' id_two'的所有值。作为字典键和相应的描述符存储为字典值。

任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

这是你要找的吗?

df.groupby('id_one').apply(lambda x: dict(zip(x['id_two'], x['descriptor']))).reset_index().rename(columns={"id_one":"col a", 0:"col b"})
#    col a                                          col b
# 0    123  {456: u'blue', 678: u'green', 567: u'yellow'}