问题描述
我使用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 (将#修改为@)