我需要从不同的字典创建一个熊猫数据框,其中键必须充当数据框内的列名。如果数据框没有将键列为一列,则它必须动态创建它并作为新列附加到数据框。
我希望输入为
1st dict-> {'mse': 0.04, 'accuracy': 0.91, 'mean':0.75}
2nd dict-> {'mse': 0.04, 'accuracy': 0.91}
3rd dict-> {'mse': 0.04, 'accuracy': 0.91, 'f1-score':0.95}
输出应该是
循环的第一个迭代,它将键作为数据帧的列名,并创建不存在值作为第一行的数据帧。
第二次迭代检查键是否在数据框中显示为列,如果已经存在则插入,否则创建一列并将值插入为第二行。
我完全不知道如何在python中动态运行循环。谁能帮我解决这个问题?预先感谢!
答案 0 :(得分:2)
这是文档from_records
import pandas as pd
dict = {'mse': 0.04, 'accuracy': 0.91, 'mean':0.75}
dict2 = {'mse': 0.04, 'accuracy': 0.91}
dict3 = {'mse': 0.04, 'accuracy': 0.91, 'f1-score':0.95}
mydicts = [dict, dict2, dict3]
df = pd.DataFrame.from_records(mydicts).fillna(0)
print(df)
或者只是在评论中说
pd.DataFrame(mydicts)