Python pandas 从两列创建新的字典列

Python pandas create new dict column from two columns

希望你们一切都好。 我有一个数据框数据看起来像这样:

import pandas as pd
   data = {'A':  ['A_first_value', 'A_second_value'],
        'B': ['B_first_value', 'B_second_value'],
        'C': ['C_first_value', 'C_second_value'],
        'D': ['D_first_value', 'D_second_value'],
   }
df = pd.DataFrame(data)

结果:

      A               B               C               D
0   A_first_value   B_first_value   C_first_value   D_first_value
1  A_second_value  B_second_value  C_second_value  D_second_value

这应该是目标 C 列和 D 列应该在字典中:

#                 A               B                                        Target
# 0   A_first_value   B_first_value  {"C": "C_first_value", "D": "D_first_value"}
# 1  A_second_value  B_second_value  {"C": "C_second_value", "D": "D_second_value"}

我想我会因为速度而避免使用 iterrows?! 还有其他可能吗?

使用DataFrame.to_dict:

df['Target'] = df[['C','D']].to_dict('records')
df = df.drop(['C','D'], axis=1)
print (df)
                A               B  \
0   A_first_value   B_first_value   
1  A_second_value  B_second_value   

                                           Target  
0    {'C': 'C_first_value', 'D': 'D_first_value'}  
1  {'C': 'C_second_value', 'D': 'D_second_value'}