【问题标题】:Store whole dict in one element/cell of Pandas DataFrame?将整个字典存储在 Pandas DataFrame 的一个元素/单元格中?
【发布时间】:2021-07-03 00:35:37
【问题描述】:

是否可以将复杂的字典存储在 Pandas DataFrame 的一个元素中,好吗? 然后用类似的结构化字典填满整个列,好吗?

我的小例子

import pandas as pd
import numpy as np

#create an example dict
dict={}
dict['key1']=np.array([[1, 2, 3], [4, 5, 6]])
dict['key2']=np.array([2])                     
dict['key3']='Mexico'

#create the pd DataFrame
df=pd.DataFrame(index=['0','1'], columns=['A','B'])
df

以下代码

df[0,'A']=[dict]
df[1,'A']=[dict]

失败 ValueError:值的长度 (1) 与索引的长度 (2) 不匹配

实际上,我的 dict 包含大约 20 个条目,我不想将每个条目存储在同一索引的列中。或者这是唯一的方法,好吗? 我想我可以用 Pandas 创建某种小型数据库。

感谢您的建议。

【问题讨论】:

    标签: python-3.x pandas dataframe dictionary


    【解决方案1】:

    您可以使用.loc 来做到这一点:

    df.loc['0','A'] = [5,2,3]
    df.loc['1','A'] = [dict]
    

    结果:

                                                       A    B
    0                                          [5, 2, 3]  NaN
    1  [{'key1': [[1 2 3], [4 5 6]], 'key2': [2], 'ke...  NaN
    

    您还可以添加新条目(行):

    df.loc['5','A'] = [{'test':'dummy'}]
    
                                                       A    B
    0                                          [5, 2, 3]  NaN
    1  [{'key1': [[1 2 3], [4 5 6]], 'key2': [2], 'ke...  NaN
    5                                [{'test': 'dummy'}]  NaN
    

    【讨论】:

      猜你喜欢
      • 2021-11-08
      • 1970-01-01
      • 2018-03-26
      • 2018-04-22
      • 2019-05-01
      • 2022-11-29
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多