假设我有一本看起来像这样的字典:
{'blue': [1,2,3], 'red' : [1,3]}
我想将其转换为两列的数据框,其中一列是颜色名称(红色或蓝色),另一列是值。也许是这样的:
blue 1
blue 2
blue 3
red 1
red 3
这样做有很短的路吗?我已经检查了将字典转移到数据框的方法,但是没有一个谈论值是列表的情况。
谢谢。
答案 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.concat
与pandas.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