为了账号安全,请及时绑定邮箱和手机立即绑定

将数据框的两列作为键值对合并到现有的字典列中

将数据框的两列作为键值对合并到现有的字典列中

暮色呼如 2023-03-08 14:02:23
如果我们有 3 列数据框:column1 : ['A','A','B','C']column2 : [12,13,14,15]column3 : [{"key1":"val1"},{"key2":"val2"},{"key3":"val3"},{"key4":"val4"}]我希望 column3 是这样的:column3 : [{"key1":"val1", "A":12},{"key2":"val2", "A":13},{"key3":"val3", "B":14},{"key4":"val4", "C":15}]我尝试了一些使用 lambda 函数和 apply 来迭代行的方法,但都没有成功。
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

您可以使用列表理解和解包作为:


df['col3'] = [{**d, k:v} for k,v,d in df.values.tolist()]

print(df)


  col1  col2                       col3

0    A    12  {'key1': 'val1', 'A': 12}

1    A    13  {'key2': 'val2', 'A': 13}

2    B    14  {'key3': 'val3', 'B': 14}

3    C    15  {'key4': 'val4', 'C': 15}

输入数据 -


df = pd.DataFrame({'col1':['A','A','B','C'], 

                   'col2':[12,13,14,15],

                   'col3':[{"key1":"val1"},{"key2":"val2"},

                           {"key3":"val3"},{"key4":"val4"}]})


查看完整回答
反对 回复 2023-03-08
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

您可以结合使用 apply 和 lambda 函数来执行此操作。它是这样的:


df.apply(lambda row: row.column3.update({row.column1: row.column2}), axis=1)

所以输出将是:


  column1  column2                    column3

0       A       12  {'key1': 'val1', 'A': 12}

1       A       13  {'key2': 'val2', 'A': 13}

2       B       14  {'key3': 'val3', 'B': 14}

3       C       15  {'key4': 'val4', 'C': 15}


查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信