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

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

如何將來自多個字典的數據合并到 DataFrame 中的單行中

如何將來自多個字典的數據合并到 DataFrame 中的單行中

智慧大石 2022-01-11 19:44:54
我想將幾個具有相同鍵的字典合并在一起,而不刪除任何鍵/值對并轉換為DataFrame.我試過了dict.update(),但它用重復鍵的新值替換了以前的值。dict3[1]{'DB': 'M', 'TITLE': 'ACM Journal of Computer Documentation ', 'ISSN': '1527-6805', 'e-ISSN': '1557-9441', 'ISBN': nan, 'e-ISBN': nan}dict4[0]{'DB': 'D', 'TITLE': 'ACM Computing Surveys ', 'ISSN': '0360-0300', 'e-ISSN': '1557-7341', 'ISBN': nan, 'e-ISBN': nan}我希望結果將所有鍵保留在同一行中,無論值是相同還是不同,盡管它們是重疊鍵。該表應如下所示:   DB      TITLE         ISSN      e-ISSN  ...    DB     TITLE        ISSN ...0   M   ACM Journal... 1527-6805  1557-9441  ...   D  ACM Comput... 0360-0300...
查看完整描述

1 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

您可以連接每個 dict 的鍵以表示您的行列,然后將每個 dict 的值連接成一行(DataFrame作為嵌套 dict傳遞給構造函數以創建一行而不是單列)。例如:


import pandas as pd


nan = float('nan')

d1 = {'DB': 'M', 'TITLE': 'ACM Journal of Computer Documentation', 'ISSN': '1527-6805', 'e-ISSN': '1557-9441', 'ISBN': nan, 'e-ISBN': nan}

d2 = {'DB': 'D', 'TITLE': 'ACM Computing Surveys', 'ISSN': '0360-0300', 'e-ISSN': '1557-7341', 'ISBN': nan, 'e-ISBN': nan}


columns = [*d1.keys(), *d2.keys()]

row = [*d1.values(), *d2.values()]

df = pd.DataFrame([row], columns=columns)

print(df)

#   DB                                  TITLE  ...  DB                  TITLE

# 0  M  ACM Journal of Computer Documentation  ...   D  ACM Computing Surveys

您可以創建一個簡單的函數,DataFrame使用相同的基本方法將任意數量的字典轉換為單行。例如:


def dicts_to_single_row_df(*args):

    columns = [k for d in args for k in d.keys()]

    row = [v for d in args for v in d.values()]

    return pd.DataFrame([row], columns=columns)


df = dicts_to_single_row_df(d1, d2)


查看完整回答
反對 回復 2022-01-11
  • 1 回答
  • 0 關注
  • 598 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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