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

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

如何將字典列表和嵌套列表轉換為 pandas Dataframe 以便在 markdown

如何將字典列表和嵌套列表轉換為 pandas Dataframe 以便在 markdown

HUH函數 2022-12-06 16:41:13
我有以下字典列表(其中包含嵌套列表):compatibility = [  {'region': 'NTSC-U',   'stats': [     {'os': 'Windows', 'state': 'Playable'},      {'os': 'Linux', 'state': 'Playable'},     {'os': 'Mac', 'state': 'N/A'}   ]},    {'region': 'PAL',    'stats': [      {'os': 'Windows', 'state': 'Playable'},      {'os': 'Linux', 'state': 'N/A'},       {'os': 'Mac', 'state': 'N/A'}    ]},     {'region': 'NTSC-J',     'stats': [       {'os': 'Windows', 'state': 'N/A'},        {'os': 'Linux', 'state': 'N/A'},       {'os': 'Mac', 'state': 'N/A'}   ]}]我正在嘗試使用pytablewriter并pandas為此數據生成降價表,但我似乎無法全神貫注地處理數據框的唯一值和列排序。這是我的函數,其中包含此輸出的外觀示例:def generate_table():    compatibility = find_compatibility()    writer = MarkdownTableWriter()    writer.from_dataframe(        pd.DataFrame({'NTSC-U': ['Playable', 'Playable', 'N/A'], 'PAL': ['Playable', 'N/A', 'N/A'],                       'NTSC-J': ['N/A', 'N/A', 'N/A']}, index=['Windows', 'Linux', 'Mac']),        add_index_column=True,    )    writer.write_table()我將如何生成這個?我已經考慮過使用集合來提取唯一的操作系統名稱,但這似乎不適用于帶有嵌套列表的字典列表。(并且由于數據結構有時只包含一個區域,因此它需要是動態的)。任何幫助深表感謝!
查看完整描述

1 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

您可以從規范化 json開始,選擇“stats”作為記錄路徑。

df = pd.json_normalize(compatibility, "stats", ["region"])

print(df)

        os     state  region

0  Windows  Playable  NTSC-U

1    Linux  Playable  NTSC-U

2      Mac       N/A  NTSC-U

3  Windows  Playable     PAL

4    Linux       N/A     PAL

5      Mac       N/A     PAL

6  Windows       N/A  NTSC-J

7    Linux       N/A  NTSC-J

8      Mac       N/A  NTSC-J

然后你只需使用 pivot 來獲得所需的輸出。


df = df.pivot("os", "region", values="state")

print(df)

region  NTSC-J    NTSC-U       PAL

os                                

Linux      N/A  Playable       N/A

Mac        N/A       N/A       N/A

Windows    N/A  Playable  Playable


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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