Python pandas 数据帧输出格式

标签 python pandas csv format

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

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

Excel View : enter image description here

关于Python pandas 数据帧输出格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57892106/

相关文章:

python - 在 Python 中将多个 zip 文件合并为一个 zip 文件

Pandas Series 应用函数返回多行并向索引添加第二级

python - 从 Pandas DataFrame 列获取列表元素

c# - 无法使用 oledb 为 csv 文件打开连接

xml - XSLT 新行插入不能按预期与 Hive 一起工作

python - 如果您知道使用 pandas 数据框的列值和行值,如何检索数据?

python - 为什么这个内存功能不能在线性时间内运行?

python - 如何更改 scipy curve_fit/least_squares 步长?

python - 数据框中的百分位排名。 Pandas

csv - 如何反序列化actix Web表单数据并将其序列化为csv文件?