例如,我有一个包含 2 个列表的嵌套列表,其中包含这样的字典:[[{},{},{},{}],[{},{},{},{}]]
[[{'Date': 'Dec 16 2020', 'Open': '37.00', 'High': '37.71', 'Low': '36.65', 'Close': '36.67', 'Adj Close': '36.67', 'Volume': '1840194'}, {'Date': 'Dec 15 2020', 'Open': '35.80', 'High': '36.88', 'Low': '35.63', 'Close': '36.79', 'Adj Close': '36.79', 'Volume': '1683816'}, {'Date': 'Dec 14 2020', 'Open': '35.48', 'High': '36.63', 'Low': '35.48', 'Close': '35.74', 'Adj Close': '35.74', 'Volume': '1808091'}, {'Date': 'Dec 11 2020', 'Open': '36.29', 'High': '36.63', 'Low': '34.96', 'Close': '35.08', 'Adj Close': '35.08', 'Volume': '1947461'}, {'Date': 'Dec 10 2020', 'Open': '36.51', 'High': '36.88', 'Low': '35.47', 'Close': '36.35', 'Adj Close': '36.35', 'Volume': '2207529'}],[{'Date': 'Sep 22 2020', : lose': '22.17', 'VolOpen': '22.00', 'High': '22.87', 'Low': '21.89', 'Close': '22.87', 'Adj Close': '22.87', 'Volume': '1997258'}, {'Date': 'Oct 05 2020', 'Open': '21.60', 'High': '
'Open': '21.01', 'High': '21.85', 'Low': '20.74', 'Close': '21.43', 'Adj Close': '21.43', 'Volume': '2064940'}, {'Date': 'Sep 21'O, 'Volume': '2064940 '20.72', 'Close': '21.19', 'Adj Close': '21.19', 'Volume': '2007302'}, {'Date': 'Oct 01 2020', 'Open': '22.35', 'High': '22.XMRClose': '20.88', 'Adj Close': '20.88', 'Volume': '3544256'}]]
我想要 2 个数据帧,例如:
Date Open High Low Close Adj Close Volume
Dec 16 2020 37 37 36 36 1840194
Dec 15 2020 ' ' ' ' '
Dec 14 2020 ' ' ' ' '
Dec 13 2020 ' ' ' ' '
我显然不能使用它:
df = pd.DataFrame(data)
将数据作为字典列表。
答案 0 :(得分:1)
解决方案很简单,就是把你的列表列表压平,然后你就可以正常将它传递给pandas
l = [
[{'date':1, 'value':'1'}, {'date':2, 'value':'2'}],
[{'date':3, 'value':'3'}, {'date':4, 'value':'4'}]
]
df = pd.DataFrame([item for sublist in l for item in sublist])
会得到你
date value
0 1 '1'
1 2 '2'
2 3 '3'
3 4 '4'
虽然如果你需要一个 Pandas DataFrames 列表,你可以像这样简单地迭代你的主列表:
df_list = []
for x in l:
df_list.append(pd.DataFrame(x))
或者干脆
df_list = [pd.DataFrame(x) for x in l]