首页 > 解决方案 > 从 dict 创建数据帧并附加它们

问题描述

我有一个文件目录,我将其解析为具有多个键值对的字典,并且我想将每个字典作为一行存储在 pandas 数据框中。

import pandas as pd

df = pd.DataFrame()
for file in os.listdir(directory):
    dict1 = parseFileToDict(file)
    df_temp = pd.DataFrame.from_dict(dict1, orient='columns')
    df_temp.set_index('name')
    df =  df.append(df_temp)

'parseFileToDict()' 的示例输出如下所示,

d = {'name': 'foo', 'place': 'bar', 'dob': '22-11-1990'}

但是从字典创建熊猫数据框时出现以下错误,

"ValueError: If using all scalar values, you must pass an index"

标签: pythonpandasdataframe

解决方案


首先在循环中创建字典列表:

L = []
for file in os.listdir(directory):
    dict1 = parseFileToDict(file)
    L.append(dict1)

或者在列表理解中:

L = [parseFileToDict(file) for file in os.listdir(directory)]

DataFrame如果性能很重要,然后传递给构造函数:

df = pd.DataFrame(L).set_index('name')

推荐阅读