将列表字典转换为数据框

时间:2019-05-16 04:19:36

标签: python pandas dataframe dictionary

假设我有一本看起来像这样的字典:
{'blue': [1,2,3], 'red' : [1,3]}
我想将其转换为两列的数据框,其中一列是颜色名称(红色或蓝色),另一列是值。也许是这样的:

blue    1
blue    2
blue    3
red     1
red     3

这样做有很短的路吗?我已经检查了将字典转移到数据框的方法,但是没有一个谈论值是列表的情况。

谢谢。

2 个答案:

答案 0 :(得分:2)

最简单的方法可能是将字典转换为元组列表,然后再将其提供给pd.DataFrame

import pandas as pd

d = {'blue': [1,2,3], 'red' : [1,3]}

lst = [(k, i) for k, v in d.items() for i in v]

df = pd.DataFrame(lst)

df
       0    1
0   blue    1
1   blue    2
2   blue    3
3   red     1
4   red     3

答案 1 :(得分:1)

pandas.concatpandas.Series一起使用:

d = {'blue': [1,2,3], 'red' : [1,3]}
s = pd.concat([pd.Series(v, index=np.repeat(k, len(v))) for k,v in d.items()])

print(s)
blue    1
blue    2
blue    3
red     1
red     3
dtype: int64
相关问题