DF元组列表(不等长元组)

时间:2017-10-18 16:36:44

标签: python pandas dictionary

在存在以下格式的字典时会遇到一个有趣的问题:

test = {'A': [(1,2),(3,4)],
        'B': [(1,2),(5,6),(7,8)]}

对于字典中的每个键,它们共享一些值(始终是第一个),但每个列表中有不同数量的元组。

最终,我的目标是以这种格式表示数据:

     1 3 5 7
  A  2 4 - - 
  B  2 - 6 8 

是否有智能方法将字典值中的这些常用元素转换为数据框的列?

我想让列表长度相等的是:

#get all the unique first elements of the dictionary
unique=[]
for i in test.values():
    for j in i:
        unique.append(j[0])

unique = set(unique)

values_of_A = test['A']

#I thought this would loop through each tuple in the list and check if its 
#first value is in the list of unique elements; otherwise, it will print
#0. However, it comes up with a blank list...
full_list = [0 for i, v in enumerate(values_of_A) if v[0] not in unique]

一如既往地谢谢!

1 个答案:

答案 0 :(得分:7)

你可能只是把它弄乱并使用from_dict替代构造函数:

>>> pd.DataFrame.from_dict({k:dict(v) for k,v in test.items()}, orient='index')
   1    3    5    7
A  2  4.0  NaN  NaN
B  2  NaN  6.0  8.0
>>>