让我们将每个嵌套列表的值转换为DataFrame,然后调用pd.concat
。
columns = ['userid', 'score', 'related']
df_dict = {k : pd.DataFrame(v, columns=columns) for k, v in dict1.items()}
df = (pd.concat(df_dict)
.reset_index(level=1, drop=True)
.rename_axis('memberid')
.reset_index()
)
或者,以类似的方式——
df = pd.concat([
pd.DataFrame(v, columns=columns, index=np.repeat(k, len(v)))
for k, v in dict1.items()
]
).rename_axis('memberid').reset_index()
df
memberid userid score related
0 808 a 5.4 b
1 808 c 4.1 b
2 808 d 3.7 f
重要提示——该解决方案也适用于多个键值对,其中每个键可能没有相同数量的列表。但由于这种灵活性,对于大型数据框而言可能会变得较慢。在这种情况下,如果dict1仅包含一个条目,则下面修改后的解决方案可行。
k, v = list(dict1.items())[0]
pd.DataFrame(v, columns=columns, index=np.repeat(k, len(v))).reset_index()
index userid score related
0 808 a 5.4 b
1 808 c 4.1 b
2 808 d 3.7 f
dict1
是否总是只有一个键? - jpp