将存储在数据框列中的字典拆分为行

问题描述

我使用python3,其中dataframe字典(json)需要转换为行值。

import pandas as pd
import json
from pandas import DataFrame as pd_DataFrame
from cassandra.cluster import Cluster as cass_Cluster
from cassandra.auth import PlainTextAuthProvider as cass_authProvider

def func_pandas_factory(colnames,rows):
    return pd_DataFrame(rows,columns = colnames)

__cluster = cass_Cluster(contact_points=['nnn.nn.nnn.nn'],port=1234,auth_provider=cass_authProvider('username','password'))
__session = __cluster.connect('keyspace')
__session.row_factory = func_pandas_factory
__session.default_timeout = 60
__session.default_fetch_size = None

__query = "SELECT iden1,iden2,toJson(dict_col) as \"dict_col\" FROM cassandta_table_name LIMIT 2"
df = __session.execute(__query,timeout=None)
df = df._current_rows
df.columns = df.columns.str.lower()

cassandra查询的输出

**iden1,dict_col**
ID101,ID201,{"dyn11": {"d11": {"d11k1": "d11v1","d11k2": "d11v2"}}}
ID102,ID202,{"dyn12": {"d21": {"d21k1": "d21v1","d21k2": "d21v2"}},"dyn22": {"d22": {"d22k1": "d22v1","d22k2": "d22v2"}}}

期望的输出

字典分为键和值

**iden1,ddcol_k1,ddcol_k2**
ID101,dyn11,d11v2

字典被分为键,值和行1

**iden1,ddcol_k2**
ID102,dyn12,d21v2
ID102,dyn22,d22v2

可以使用多个循环语句和迭代数据来实现,但是数据库具有200万条记录,其中迭代会影响性能。必须知道所有可用的Python轻松实现方式。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...