Python 将包含对象的dict转换为数据帧 让我们考虑一个字典中满是对象的定义,理由如下: for i in range(1, len(list_of_players)+1): d["test_player{0}".format(i)] = Player(i, list_of_players[i-1], 0, 0, 0, 0, 0)

Python 将包含对象的dict转换为数据帧 让我们考虑一个字典中满是对象的定义,理由如下: for i in range(1, len(list_of_players)+1): d["test_player{0}".format(i)] = Player(i, list_of_players[i-1], 0, 0, 0, 0, 0),python,pandas,dataframe,dictionary,tkinter,Python,Pandas,Dataframe,Dictionary,Tkinter,现在,我使用tkinter打开了一个根目录,其中提到的每个玩家的值都可能被更改。接下来,我想将这些值转换为DataFrame,然后将它们导出到Excel。采取以下行动: df = pd.DataFrame(d.items()) print(df) 只打印预期的每个对象ID,但我不知道如何合理地访问实际值。我知道我可以使用下面的方法将其切换到列表: d_list = [] for i in range(1, len(list_of_players)+1): d_list.append([

现在,我使用tkinter打开了一个根目录,其中提到的每个玩家的值都可能被更改。接下来,我想将这些值转换为DataFrame,然后将它们导出到Excel。采取以下行动:

df = pd.DataFrame(d.items())
print(df)
只打印预期的每个对象ID,但我不知道如何合理地访问实际值。我知道我可以使用下面的方法将其切换到列表:

d_list = []
for i in range(1, len(list_of_players)+1):
    d_list.append([d["test_player{0}".format(i)].name, 
    d["test_player{0}".format(i)].goals, 
    d["test_player{0}".format(i)].assists])
然后将该列表转换为数据帧,尽管我认为没有更干净的方法来实现这一点。您能建议如何将“d”字典值直接转换为数据帧吗


提前谢谢

您可以使用
pd.DataFrame(行列表)
执行此操作,其中
list\u行
是一个类似dict的对象列表(即
dict
pd.Series
,将被解释为行,其本身可以通过列表理解构建:

list_of_rows = [{'name': d[player].name,
                 'goals': d[player].goals,
                 'assists': d[player].assists} for player in d]
df = pd.DataFrame(list_of_rows)

感谢您的输入,尽管这是我所做的(以稍微不同的方式)。我想知道我是否可以以上面提到的方式直接从定义的dict转到数据帧