我是使用 pandas 和 Dataframes 的初学者。
这是字典:
names_values = {"Alex":[1,2,3,4,5],"Sam":[5,6,7,8,9]}
我希望数据框看起来像这样:
name value
0 Alex 1.0
1 Alex 2.0
2 Alex 3.0
3 Alex 4.0
4 Alex 5.0
5 Sam 5.0
6 Sam 6.0
7 Sam 7.0
8 Sam 8.0
9 Sam 9.0
我的方法是:
df = pd.DataFrame({"name":[],"value":[]})
for name in names_values.keys():
for i in range(len(names_values[name])):
df = df.append({"name": name, "value": names_values[name][i]}, ignore_index=True)
这给了我想要的结果,但我想知道是否有一种通用/更有效的方法来获得相同的结果。
谢谢
最佳答案
使用 pandas.Dataframe.melt
的一种方法:
df = pd.DataFrame(names_values).melt(var_name='name')
print(df)
输出:
name value
0 Alex 1
1 Alex 2
2 Alex 3
3 Alex 4
4 Alex 5
5 Sam 5
6 Sam 6
7 Sam 7
8 Sam 8
9 Sam 9
关于python - 从字典创建 Dataframe,该字典为每个键分配了多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59622045/