Python 3.x 如何使用更新数据框的行,使其成为具有列名的字典?

Python 3.x 如何使用更新数据框的行,使其成为具有列名的字典?,python-3.x,pandas,list,dataframe,pandas-groupby,Python 3.x,Pandas,List,Dataframe,Pandas Groupby,我有一个这样的数据帧 ID Name id2 name2 101 A 1 d_a 103 B 2 d_b 101 A 3 d_c 103 B 4 d_d ID Name id2 name2 101 A [{'id2':1},{'id2':3}] [{'name2':'d_a'},{'name2':'d_c'}] 103 B [{'id2':2},{'id2':4}] [{'name

我有一个这样的数据帧

ID  Name id2 name2
101  A    1   d_a
103  B    2   d_b
101  A    3   d_c
103  B    4   d_d
ID   Name id2                     name2
101  A    [{'id2':1},{'id2':3}]  [{'name2':'d_a'},{'name2':'d_c'}]
103  B    [{'id2':2},{'id2':4}]  [{'name2':'d_b'},{'name2':'d_d'}]
我想要这样的输出df

ID  Name id2 name2
101  A    1   d_a
103  B    2   d_b
101  A    3   d_c
103  B    4   d_d
ID   Name id2                     name2
101  A    [{'id2':1},{'id2':3}]  [{'name2':'d_a'},{'name2':'d_c'}]
103  B    [{'id2':2},{'id2':4}]  [{'name2':'d_b'},{'name2':'d_d'}]

将列表理解用于:

编辑:与lambda函数一起使用:

cols = ['id2','name2']
df2 = df.groupby(['ID','Name'])[cols].agg(lambda x: x.to_frame().to_dict('r')).reset_index()
print (df2)
    ID Name                       id2                                 name2
0  101    A  [{'id2': 1}, {'id2': 3}]  [{'name2': 'd_a'}, {'name2': 'd_c'}]
1  103    B  [{'id2': 2}, {'id2': 4}]  [{'name2': 'd_b'}, {'name2': 'd_d'}]

将列表理解用于:

编辑:与lambda函数一起使用:

cols = ['id2','name2']
df2 = df.groupby(['ID','Name'])[cols].agg(lambda x: x.to_frame().to_dict('r')).reset_index()
print (df2)
    ID Name                       id2                                 name2
0  101    A  [{'id2': 1}, {'id2': 3}]  [{'name2': 'd_a'}, {'name2': 'd_c'}]
1  103    B  [{'id2': 2}, {'id2': 4}]  [{'name2': 'd_b'}, {'name2': 'd_d'}]

您好@jezrael谢谢您的快速回复,您能告诉我,如果我想将此应用于某个特定列,我尝试过,但得到一个错误,如df有两个列,您只定义了一个。您好,再次感谢您,但是这个方法删除了我想要保持输出中第一列不变的所有其他列,并根据需要进行修改。提前感谢[uu//@R.singh-您能否根据此新要求更改有问题的样本数据?因为不明白需要什么。谢谢。你能检查一下吗?我已经编辑了这个问题。Please@R.singh-感谢您提供的数据和预期输出,因此有可能创建答案;)快乐编码!您好@jezrael谢谢您的快速回复,您能告诉我,如果我想将此应用于某个特定列,我尝试过,但得到一个错误,如df有两个列,您只定义了一个。您好,再次感谢您,但是这个方法删除了我想要保持输出中第一列不变的所有其他列,并根据需要进行修改。提前感谢[uu//@R.singh-您能否根据此新要求更改有问题的样本数据?因为不明白需要什么。谢谢。你能检查一下吗?我已经编辑了这个问题。Please@R.singh-感谢您提供的数据和预期输出,因此有可能创建答案;)快乐编码!