我需要以特定格式保存数据框,但我不知道如何更改该格式(或者可以那样更改)。
我有json
:
{
'criteria A': {
'topicA': [6, 2, 7],
'topicB': [0, 6, 9]
},
'criteria B': {
'topicA': [6, 4, 8],
'topicB': [8, 6, 1]
}
}
我试过保存我的框架:
df = pd.DataFrame(json)
df.to_csv('test.csv')
但是它将数组保存为单元格值:
------------------------------------
| | criteria A | criteria B |
------------------------------------
| topicA | [3, 8, 9] | [6, 1, 0] |
------------------------------------
| topicB | [5, 4, 9] | [2, 9, 9] |
------------------------------------
我唯一想改变的是array 输出并合并criteria* 单元格以获得如下内容:
------------------------------------
| | criteria A | criteria B |
------------------------------------
| topicA | 3 | 8 | 9 | 6 | 1 | 0 |
------------------------------------
| topicB | 5 | 4 | 9 | 2 | 9 | 9 |
------------------------------------
所以标准是 3 行宽,每个数组值都放在自己的单元格中。
pandas 是否允许这种格式?
最佳答案
考虑来自 json 的数据框,如下所示:
criteria A criteria B
topicA [6, 2, 7] [6, 4, 8]
topicB [0, 6, 9] [8, 6, 1]
你可以像下面这样创建一个多索引:
(pd.concat([pd.DataFrame(df[i].tolist()) for i in df.columns],axis=1,keys=df.columns)
.set_index(df.index))
输出:
criteria A criteria B
0 1 2 0 1 2
topicA 6 2 7 6 4 8
topicB 0 6 9 8 6 1
关于Python pandas 数据帧输出格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57892106/