如何解决将存储在数据框列中的字典拆分为行
我使用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 举报,一经查实,本站将立刻删除。