Python字典到Pandas数据框,列表作为值

时间:2019-09-01 00:03:41

标签: python pandas dictionary

我要转换以下字典:

links = { "a": ["aa", "ab", "ac"], "b": ["ba", "bb", "bc", "bd"] }

到像这样的Pandas数据框:

col_a   col_b
  a       aa
  a       ab
  a       ac
  b       ba
  b       bb
  b       bc
  b       bd

与有关Pandas示例的经典词典有些不同。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

在熊猫0.25.0中

pd.Series(links).explode().reset_index()

答案 1 :(得分:1)

使用列表推导创建(col_a, col_b)元组的列表,然后使用DataFrame.from_records()

records = [(k, i) for k, v in links.items() for i in v]
df = pd.DataFrame.from_records(records, columns=["col_a", "col_b"])

答案 2 :(得分:0)

您可以使用列表理解和本机python运算符进行以下操作:

matIconRegistry

答案 3 :(得分:0)

您可以先使用from_dict创建df,然后将其转置并重新排列并重命名:

(
    pd.DataFrame.from_dict(links, orient='index')
    .T.stack()
    .reset_index(level=0, drop=True)
    .sort_index()
    .reset_index()
    .set_axis(['col_a','col_b'], 1, inplace=False)
)

col_a   col_b
0   a   aa
1   a   ab
2   a   ac
3   b   ba
4   b   bb
5   b   bc
6   b   bd