Python数据帧输出窗体

2024-04-19 07:04:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

所以criteria是3行宽的,每个数组值都放在自己的单元格中。你知道吗

熊猫是否允许这种格式?你知道吗


Tags: csvto数据testjsondataframedf标准
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如下所示。你知道吗

考虑到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视图: enter image description here

这是个棘手的问题。我想你最好的办法就是做这样的事。你知道吗

                  
|        |CA |CA |CA  |CB |CB |CB  |
                  
| topicA | 3 | 8 | 9  | 6 | 1 | 0  |
                  
| topicB | 5 | 4 | 9  | 2 | 9 | 9  |
                  

相关问题 更多 >