簡體   English   中英

以列表為值的 Python 字典:如何選擇值?

[英]Python dictionary with list as values: how do I select values?

我有一個以列表為值的字典:

d = {'a':[0,1],'b':[2,3]}

我想創建一個數據框,其中一列用於鍵,兩列用於列表中的值:

|key |val1 |val2 |
|----|-----|-----|
|a   |0    |1    |
|b   |2    |3    |
|----|-----|-----|

我的計划是創建三個列表,然后將它們添加到新的數據框中。 適用於鍵,但我不知道如何將列表中包含為值的元素分開。

這是我嘗試過的:

key = d.keys()
val1 = d.values()[0]
val2 = d.values()[1]

在字典中存儲為值的列表元素的索引是什么?

所以首先如果你想從字典創建一個數據框有這個方法

import pandas as pd

pd.DataFrame.from_dict(d, orient='index')

查看文檔以了解orient正在做什么。 根據如何創建它,您可以自己查看命令。

此外,如果您想訪問列表的元素並自己創建數據框,您可以這樣做

for val in d.values():
    print(val[0])
    print(val[1])
    #work with them

您可以通過訪問元素來收集列表中的所有這些值,如下所示,然后您可以創建數據幀pd.Dataframe()

如果您想“手動”為您的列選擇元素,您可以使用:

{'key': list(d.keys()), **({'val%s' % i: list(map(lambda x: x[i], d.values())) for i in range(len(list(d.values())[0]))})}

輸出:

{'key': ['a', 'b'], 'val0': [0, 2], 'val1': [1, 3]}

獲取數據幀:

pd.DataFrame({'key': list(d.keys()), **({'val%s' % i: list(map(lambda x: x[i], d.values())) for i in range(len(list(d.values())[0]))})})

輸出: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM