我是新手。我有一个数据框,其中包含一个我无法识别的对象,我需要将其解包并转换为一个新的单独数据框,以形成一个新的规范化结构
df的简化版本为:
trasaction_id customer_details
0 1 <customer {id:'A123', name: 'Tina'} as x >
0 2 <customer {id:'B456', name: 'Tony'} as x >
0 3 <customer {id:'C789', name: 'Tim'} as x >
Name: customer_details, dtype: object
我似乎无法在尖括号内的对象内访问字典。我尝试过各种各样的事情,如果我尝试print(df['customer_details].__dict__
,我会得到以下结果:{'_is_copy': None, '_data': SingleBlockManager
我甚至尝试过做一些像这个字符串操纵器这样的黑客行为,但我确信,作为一个新手,我缺少了一些基本的东西。
'{' + df['customer_details'].apply(lambda st: st[st.find("{")+1:st.find("}")]) + '}'
最终,我试图实现的是将这些客户详细信息不显示到由事务id链接的单独df中,并将其存储在RDB中的简单规范化结构中。我相信为了使用json.dumps()等标准工具,我希望它看起来像这样(每个元素都用双引号引)
transaction_id customer_details
0 1 {id:'A123', name: 'Tina'}
0 2 {id:'B456', name: 'Tony'}
0 3 {id:'C789', name: 'Tim'}
这让我快发疯了。谢谢你的帮助
似乎您有属性为
id
和name
的对象/类,因此您可以尝试获取也就是说
或直接连接到分离的列
示例代码:
结果:
编辑:如果您有字符串,则可以使用
regex
从字符串中获取值相关问题 更多 >
编程相关推荐