当前位置: 首页 > 面试题库 >

字典的字典对DataFrame的字典

柴晔
2023-03-14
问题内容

我想将JSON数据存储在Python Pandas DataFrame中

我的JSON数据是像这样的字典的字典

d = {
  "col1": {
    "row1": {
      "data1": "0.87", 
      "data2": "Title col1", 
      "data3": "14.4878", 
      "data4": "Title row1"
    }, 
    "row2": {
      "data1": "15352.3", 
      "data2": "Title col1", 
      "data3": "14.9561", 
      "data4": "Title row2"
    }, 
    "row3": {
      "data1": "0", 
      "data2": "Title col1", 
      "data3": "16.8293", 
      "data4": "Title row3"
    }
  }, 
  "col2": {
    "row1": {
      "data1": "0.87", 
      "data2": "Title col2", 
      "data3": "24.4878", 
      "data4": "Title row1"
    }, 
    "row2": {
      "data1": "15352.3", 
      "data2": "Title col2", 
      "data3": "24.9561", 
      "data4": "Title row2"
    }, 
    "row3": {
      "data1": "0", 
      "data2": "Title col2", 
      "data3": "26.8293", 
      "data4": "Title row3"
    }
  }
}

我这样做是为了将数据放入DataFrame

import pandas as pd
df=pd.DataFrame(d)

我明白了

In [1]: df
Out[1]: 
                                                   col1                                               col2
row1  {'data4': 'Title col1', 'data1': '0.87', 'data3':  {'data4': 'Title col1', 'data1': '0.87', 'data3':
row2  {'data4': 'Title col2', 'data1': '15352.3', 'data  {'data4': 'Title col2', 'data1': '15352.3', 'data
row3  {'data4': 'Title col3', 'data1': '0', 'data3': '1  {'data4': 'Title col3', 'data1': '0', 'data3': '2

我的问题是我的DataFrame包含字典而不是值。

我想知道如何使用Pandas DataFrame管理多维数据(超过2个维度…这里有3个维度)。

DataFrame中的每个字典都有相同的键。


问题答案:

df = pd.Panel.from_dict(d).to_frame()

输出:

                   col1        col2
major minor                        
data1 row1         0.87        0.87
      row2      15352.3     15352.3
      row3            0           0
data2 row1   Title col1  Title col2
      row2   Title col1  Title col2
      row3   Title col1  Title col2
data3 row1      14.4878     24.4878
      row2      14.9561     24.9561
      row3      16.8293     26.8293
data4 row1   Title row1  Title row1
      row2   Title row2  Title row2
      row3   Title row3  Title row3

如果您不想使用面板:

pd.concat(map(pd.DataFrame, d.itervalues()), keys=d.keys()).stack().unstack(0)


 类似资料:
  • rank ▲ ✰ vote url 11 867 379 1107 url 用字典的值对字典进行排序 我有个字典,字典的值来自于数据库:一个是字符串,一个是数字.字符串是唯一的,所以键就是字符串. 我可以用键来排序,但是怎么用值来排序呢? 注:我已经看过另一个问题怎样对列表中的字典的键值对字典进行排序?,或许这种方法可以,但是我确实只需要一个字典,我想看看还有其他更好的方法. 对字典进行排序是不可

  • 并非所有供应商关于更新字典文件的说明都是正确的。建议Isaac恢复到工作配置的备份(他确实做了备份,对吗?)同时遵循FreeRADIUS附带的字典配置文件中的注释。 之前的管理员可能已对预定义的FreeRADIUS字典进行了更改,这些字典在FreeRADIUS更新期间被替换。没有真正的方法来确定前一个人可能做出的所有更改。但是,似乎Chillispot字典被更改了,因为抱怨是关于Chillispo

  • 字典(dictionary), 又名映射(map)或关联数组(associative array), 是一种抽象数据结构, 由一集键值对(key-value pairs)组成, 各个键值对的键各不相同, 程序可以添加新的键值对到字典中, 或者基于键进行查找、更新或删除等操作。 本章先对字典在 Redis 中的应用进行介绍, 接着讲解字典的具体实现方式, 以及这个字典实现要解决的问题, 最后, 以对

  • 本节我们的主角是Python中的字典。字典是一个数据结构,通过给定key来获取响应的值(是一个key-value对的形式)。 下面的例子展示了以同学的名字为索引,值为年龄的字典: ages = { "Peter": 10, "Isabel": 11, "Anna": 9, "Thomas": 10, "Bob": 10, "Joseph": 11, "Maria": 12, "Gabriel":

  • 我们讲到的最后一种Vimscript类型将是字典。 Vimscript字典类似于Python中的dict,Ruby中的hash,和Javascript中的object。 字典用花括号创建。值是异质的,但键会被强制转换成字符串。就是这么简单,你没想到吧? 执行这个命令: :::vim :echo {'a': 1, 100: 'foo'} Vim显示{'a':1,'100':'foo'},这说明Vi

  • 问题内容: 您是否知道是否有内置函数可以从任意对象构建字典?我想做这样的事情: 注意:它不应包含方法。仅字段。 问题答案: 请注意,Python 2.7中的最佳实践是使用新型类(Python 3不需要),即 同样,“对象”和“类”之间也存在差异。要从任意对象构建字典,只需使用即可。通常,您将在类级别声明方法,并在实例级别声明属性,因此应该没问题。例如: 更好的方法(由robert建议在注释中使用)