3 回答
TA贡献1796条经验 获得超4个赞
考虑来自 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
Excel 视图:
TA贡献1876条经验 获得超6个赞
这是一个棘手的问题。我认为你最好的选择是去做这样的事情。
------------------------------------
| |CA |CA |CA |CB |CB |CB |
------------------------------------
| topicA | 3 | 8 | 9 | 6 | 1 | 0 |
------------------------------------
| topicB | 5 | 4 | 9 | 2 | 9 | 9 |
------------------------------------
TA贡献1951条经验 获得超3个赞
您必须更改列以匹配所需的格式,然后保存。我不确定是否有办法将列表格式的数据直接保存到这个'| | ' 格式。
import pandas as pd
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['criteria A'] = [' | '.join(str(el) for el in row) for row in df['criteria A'].values]
df['criteria B'] = [' | '.join(str(el) for el in row) for row in df['criteria B'].values]
一个 html 视图df.to_html看起来像这样。
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>criteria A</th>
<th>criteria B</th>
</tr>
</thead>
<tbody>
<tr>
<th>topicA</th>
<td>6 | 2 | 7</td>
<td>6 | 4 | 8</td>
</tr>
<tr>
<th>topicB</th>
<td>0 | 6 | 9</td>
<td>8 | 6 | 1</td>
</tr>
</tbody>
</table>
添加回答
举报