[英]How to create a Dataframe from a list of dictionary?
我有这样的字典列表:
collection = [{'item': ['Policy Master 1-2022-2023-P0003 - 5 Days - Plan 3', 'Policy Master 2-2022-2023-P0009 - 5 Days - Plan 3', 'Policy Master 3-2022-2023-P0012 - 5 Days - Plan 3', 'Policy Master 1-2022-2023-P0003 - 5 Days - Plan 2', 'Policy Master 2-2022-2023-P0009 - 5 Days - Plan 2'], 'Mar': [2800.0, 600.0, 600.0, 1000.0, 200.0]}, {'item': ['Policy Master 1-2022-2023-P0003 - 5 Days - Plan 3', 'Policy Master 2-2022-2023-P0009 - 5 Days - Plan 3', 'Policy Master 3-2022-2023-P0012 - 5 Days - Plan 3', 'Policy Master 1-2022-2023-P0003 - 5 Days - Plan 2'], 'Jun': [2800.0, 600.0, 600.0, 1000.0]}]
我想从显示与之对应的每月数据中提取项目。 如果项目在上个月不存在,则应在上个月显示 NaN。 如何在熊猫中做到这一点? 未来还可以添加更多月份。 所以它应该动态地考虑所有月份。
看来您有一个可以合并在一起的可能数据框列表:
for i, x in enumerate(collection):
if not i:
df = pd.DataFrame(x)
else:
df = df.merge(pd.DataFrame(x), 'outer')
print(df)
输出:
item Mar Jun
0 Policy Master 1-2022-2023-P0003 - 5 Days - Plan 3 2800.0 2800.0
1 Policy Master 2-2022-2023-P0009 - 5 Days - Plan 3 600.0 600.0
2 Policy Master 3-2022-2023-P0012 - 5 Days - Plan 3 600.0 600.0
3 Policy Master 1-2022-2023-P0003 - 5 Days - Plan 2 1000.0 1000.0
4 Policy Master 2-2022-2023-P0009 - 5 Days - Plan 2 200.0 NaN
或者:
from functools import reduce
reduce(lambda x, y: pd.merge(pd.DataFrame(x), pd.DataFrame(y), 'outer'), collection)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.