Python pandas 数据框输出格式

我需要以特定格式保存数据框,但我不知道如何更改该格式(或者可以这样更改)。


我有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]  |

------------------------------------

我唯一要更改的是数组输出和合并标准*单元格以获得如下内容:


------------------------------------

|        | criteria A | criteria B |

------------------------------------

| topicA | 3 | 8 | 9  | 6 | 1 | 0  |

------------------------------------

| topicB | 5 | 4 | 9  | 2 | 9 | 9  |

------------------------------------

所以标准是 3 行宽,每个数组值都放在自己的单元格中。


熊猫允许这种格式吗?


尚方宝剑之说
浏览 98回答 3
3回答

慕的地8271018

考虑来自 json 的数据框,如下所示:       criteria A criteria BtopicA  [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  2topicA          6  2  7          6  4  8topicB          0  6  9          8  6  1Excel 视图:

HUX布斯

这是一个棘手的问题。我认为你最好的选择是去做这样的事情。------------------------------------|        |CA |CA |CA  |CB |CB |CB  |------------------------------------| topicA | 3 | 8 | 9  | 6 | 1 | 0  |------------------------------------| topicB | 5 | 4 | 9  | 2 | 9 | 9  |------------------------------------

饮歌长啸

您必须更改列以匹配所需的格式,然后保存。我不确定是否有办法将列表格式的数据直接保存到这个'| | ' 格式。import pandas as pdjson = {&nbsp; 'criteria A': {&nbsp; &nbsp; 'topicA': [6, 2, 7],&nbsp; &nbsp; 'topicB': [0, 6, 9]&nbsp; },&nbsp; 'criteria B': {&nbsp; &nbsp; 'topicA': [6, 4, 8],&nbsp; &nbsp; 'topicB': [8, 6, 1]&nbsp; }}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">&nbsp; <thead>&nbsp; &nbsp; <tr style="text-align: right;">&nbsp; &nbsp; &nbsp; <th></th>&nbsp; &nbsp; &nbsp; <th>criteria A</th>&nbsp; &nbsp; &nbsp; <th>criteria B</th>&nbsp; &nbsp; </tr>&nbsp; </thead>&nbsp; <tbody>&nbsp; &nbsp; <tr>&nbsp; &nbsp; &nbsp; <th>topicA</th>&nbsp; &nbsp; &nbsp; <td>6 | 2 | 7</td>&nbsp; &nbsp; &nbsp; <td>6 | 4 | 8</td>&nbsp; &nbsp; </tr>&nbsp; &nbsp; <tr>&nbsp; &nbsp; &nbsp; <th>topicB</th>&nbsp; &nbsp; &nbsp; <td>0 | 6 | 9</td>&nbsp; &nbsp; &nbsp; <td>8 | 6 | 1</td>&nbsp; &nbsp; </tr>&nbsp; </tbody></table>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python