亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將數據框的兩列作為鍵值對合并到現有的字典列中

將數據框的兩列作為鍵值對合并到現有的字典列中

暮色呼如 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條經驗 獲得超4個贊

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


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 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號