将Pandas数据集转换为其值和列值

时间:2019-08-22 12:38:07

标签: python pandas

我有一个字典,希望将其转换为具有两列(值和列名)的pandas数据框。

mydict = {'government agency': ['FBI', 'CIA','NSA'], 'international organization': ['EU', 'NATO', 'World Bank'], 'company': ['Amazon', 'Google', 'Microsoft']}

mydict=pd.DataFrame(mydict)

我希望表格的格式如下

enter image description here

不是熊猫读的方式:

enter image description here

我的词典数据结构是否需要更改,或者可以在熊猫(即pandas.melt)中实现?

2 个答案:

答案 0 :(得分:3)

构建数据框并使用melt

pd.DataFrame(mydict).melt(var_name='Column')

                  Column             value
0           government agency         FBI
1           government agency         CIA
2           government agency         NSA
3  international organization          EU
4  international organization        NATO
5  international organization  World Bank
6                     company      Amazon
7                     company      Google
8                     company   Microsoft

答案 1 :(得分:3)

这里是单线:

import pandas

mydict = {'government agency': ['FBI', 'CIA','NSA'], 'international organization': ['EU', 'NATO', 'World Bank'], 'company': ['Amazon', 'Google', 'Microsoft']}
df = pandas.DataFrame(data=[(k,v) for k in mydict for v in mydict[k]], columns=["value", "column"])

输出:

                        value      column
0                     company      Amazon
1                     company      Google
2                     company   Microsoft
3           government agency         FBI
4           government agency         CIA
5           government agency         NSA
6  international organization          EU
7  international organization        NATO
8  international organization  World Bank