[英]How do I select from a dictionary whose values are a list of lists in python2.7?
[英]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.