【发布时间】:2017-03-08 19:20:58
【问题描述】:
此问题与this one 有关。这一次,我想更进一步。给定一个像这样的字典:
dd = {0: {"russell": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)},
"cantor": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)},
"godel": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)}},
1: {"russell": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)},
"cantor": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)},
"godel": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)}}}
或类似的列表:
ll = [{"russell": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)},
"cantor": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)},
"godel": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)}},
{"russell": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)},
"cantor": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)},
"godel": {"score": numpy.random.rand(), "ping": numpy.random.randint(10, 100)}}]
我想构造一个DataFrame 喜欢:
russell godel cantor
score ping score ping score ping
0 0.17473916938994682 40 0.3443303845926545 47 0.43576522521017247 42
1 0.7341005512329682 22 0.14682222267827938 81 0.5662517436162526 59
我们可以看到列索引是MultiIndex。有没有办法做到这一点?如果我尝试pandas.DataFrame.from_dict(dd, orient="index") 或pandas.DataFrame(ll),我会得到:
russell godel cantor
0 {'score': 0.17473916938994682, 'ping': 40} {'score': 0.3443303845926545, 'ping': 47} {'score': 0.43576522521017247, 'ping': 42}
1 {'score': 0.7341005512329682, 'ping': 22} {'score': 0.14682222267827938, 'ping': 81} {'score': 0.5662517436162526, 'ping': 59}
这不是我想要的。
【问题讨论】:
标签: python pandas dictionary nested series