如何将带有元组的python字典转换为pandas数据框架?



我有一个python字典,其中字典的键是两个字符串的元组,值是整数。

它看起来像这样:

mydic = { ('column1', 'index1'):33, 
('column1', 'index2'):34, 
('column2', 'index1'):35, 
('column2', 'index2'):36 }

元组的第一个字符串应用作数据框中的列名,元组中的第二个字符串应用作索引。

来自this的数据框应该是这样的:

<表类>(索引)column1第2列tbody><<tr>index13335index23436

首先构建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。希望能有所帮助。

相关内容

  • 没有找到相关文章

最新更新