import pandas as pd
list_sample = [{'name': 'A', 'fame': 0, 'data': {'date':['2021-01-01', '2021-02-01', '2021-03-01'],
'credit_score':[800, 890, 895],
'spend':[1500, 25000, 2400],
'average_spend':5000}},
{'name': 'B', 'fame': 1, 'data': {'date':['2022-01-01', '2022-02-01', '2022-03-01'],
'credit_score':[2800, 390, 8900],
'spend':[15000, 5000, 400],
'average_spend':3000}}]
df = pd.DataFrame()
for row in list_sample:
name = row['name']
fame = row['fame']
data = row['data']
df_temp = pd.DataFrame(data)
df_temp['name'] = name
df_temp['fame'] = fame
df = pd.concat([df, df_temp])
上面是我如何得到我的 Dataframe 。上面是一个虚拟的例子,但是,上面的问题是当列表的大小和每个数据数组中的条目数增长。上面花了很多时间。可能是concat的问题或其他东西,有没有更好的方法来做我正在做的上面(更好的运行时间!)
3条答案
按热度按时间yzuktlbb1#
一种方法是将list_sample字典中的嵌套数据字典扁平化,可以使用json_normalize来实现。
5uzkadbs2#
看起来你并不关心数据列的标准化,如果是这样的话,你可以只做
df = pd.DataFrame(list_sample)
来达到同样的结果,我认为你只需要做你正在做的迭代类型,如果你想标准化数据。ltqd579y3#
组合
list_sample
中的所有指令以适合 Dataframe 结构,并立即将它们 * concat *: