import pandas as pd
input_thing = [
[{'foo': 1, 'bar': 'a', }],
[{'foo': 2, 'bar': 'b', }],
]
print(input_thing)
我怎样才能从上面显示的数据中得到一个不错的 Pandas 数据框?
IE。 foo
和 bar
列很好地显示在外面
pd.DataFrame(input_thing)
只会生成一个单列 0 的数据框
所需的输出是:
pd.concat([
pd.DataFrame(input_thing[0]),
pd.DataFrame(input_thing[1])
])
答案 0 :(得分:2)
如果 input_thing
中的每个子列表都有一个元素:
df = pd.DataFrame([i[0] for i in input_thing])
print(df)
打印:
foo bar
0 1 a
1 2 b
编辑:
df = pd.DataFrame(input_thing)
print(df[0].apply(pd.Series))
打印:
foo bar
0 1 a
1 2 b
答案 1 :(得分:0)
只需将您的 pd.concat 替换为 for 循环:
import pandas as pd
input_thing = [
[{'foo': 1, 'bar': 'a', }],
[{'foo': 2, 'bar': 'b', }],
]
df = pd.DataFrame([i[0] for i in input_thing])
print(df)
然后它就会得到你想要的:
foo bar
0 1 a
1 2 b
这就是你想要的。