我有一个cassandra数据库表,它有一个列作为参数及其类型:
parameters map<text, frozen<tuple<text, text, bigint, double, text>>>,
我正在尝试从此cassandra表中创建熊猫df:
def read_measurement_data():
query = "select * from measurement"
return pd.DataFrame(list(session.execute(query)))
measurement_df = read_measurement_data()
在创建了measurement_df之后,我需要从冻结的元组映射中提取一列,其名称为Speed。
如何添加此新列?
答案 0 :(得分:1)
CQL元组类型的值以Python tuple
类型返回,因此您只需要正确提取数据,然后按索引访问元组中的数据即可。像这样:
rows = session.execute('SELECT parameters FROM test.p1')
for row in rows:
print row.parameters.values()
我建议先从查询中提取数据,然后再生成熊猫数据框
答案 1 :(得分:0)
我通过以下方式解决了我的问题:
def add_column(row):
xnhct1 = row['parameters'].get('speed')
if xnhct1 is not None:
return xnhct1[3]
return 0
measurement_table['speed'] = measurement_table.apply(lambda row: add_column(row), axis=1)