>我有一个 cassandra 数据库表,它有一列作为参数及其类型:
parameters map<text, frozen<tuple<text, text, bigint, double, text>>>,
我正在尝试从这个卡桑德拉表创建一个熊猫 df:
def read_measurement_data():
query = "select * from measurement"
return pd.DataFrame(list(session.execute(query)))
measurement_df = read_measurement_data()
创建measurement_df后,我需要从冻结的元组地图中提取一列,它的名字是速度。
如何添加此新列?
CQL 元组类型的值以 Python tuple
类型返回,因此您只需正确提取数据,并按索引访问元组中的数据。像这样:
rows = session.execute('SELECT parameters FROM test.p1')
for row in rows:
print row.parameters.values()
我建议先从查询中提取数据,然后才生成熊猫数据框
我通过以下方式解决了我的问题:
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)