我有一个python字典,其中字典的键是两个字符串的元组,值是整数。
它看起来像这样:
mydic = { ('column1', 'index1'):33,
('column1', 'index2'):34,
('column2', 'index1'):35,
('column2', 'index2'):36 }
元组的第一个字符串应用作数据框中的列名,元组中的第二个字符串应用作索引。
来自this的数据框应该是这样的:
<表类>(索引) column1 第2列 tbody><<tr>index1 33 35 index2 34 36 表类>
首先构建pd.Series
(它将具有MultiIndex),然后使用pd.Series.unstack
获取列名。
df = pd.Series(mydic).unstack(0)
print(df)
column1 column2
index1 33 35
index2 34 36
您可以使用pd.MultiIndex.from_tuples
mydic = { ('column1', 'index1'):33,
('column1', 'index2'):34,
('column2', 'index1'):35,
('column2', 'index2'):36 }
df = pd.DataFrame(mydic.values(), index = pd.MultiIndex.from_tuples(mydic))
0
column1 index1 33
index2 34
column2 index1 35
index2 36
后面的内容只是一个变通方法。
df.T.stack()
column1 column2
0 index1 33 35
index2 34 36
注意,索引包含两行。别忘了重置。
df.T.stack().reset_index().drop('level_0', axis = 1)
level_1 column1 column2
0 index1 33 35
1 index2 34 36
如果您愿意,可以重命名level_1
。希望能有所帮助。