У меня есть таблица cassandra с 30 столбцами и фрейм данных, который будет содержать любое количество столбцов, выбранное пользователем или загруженное пользователем в виде файла csv.
например. моя таблица cassandra имеет 30 имен каналов, таких как channel_1, channel_2 .. channel_30, и несколько дополнительных столбцов, таких как product, region et c. и мой фрейм данных имеет 5 имен каналов, таких как channel_1, channel_2..channel_5 и 2 дополнительных столбца: дата и имя модели, как мне написать запрос вставки, который выполняет итерацию по моим столбцам фрейма данных и создает запрос следующим образом:
data = pd.DataFrame()
...
for _, row in data.iterrows():
session.execute("""INSERT INTO cass_table (product, region , model, date, (channel names in dataframe ex.channel_1, \
channel_2, channel_3, channel_4, channel_5) \
VALUES (%s, %s, %s, %s, <no of channels: %s, %s, %s, %s, %s>)""" ,\
(product, region, row['model_name'], row['date'], <other remaining columns like row["channel_1"], row["channel_2"],\
row["channel_3"], row["channel_4"], row["channel_5"]>))
Я пробовал это:
channel_list = ['channel_1', 'channel_2', 'channel_3', 'channel_4', 'channel_5']
session.execute("""INSERT INTO cass_table(product, region , model, date, \
""" + str(' ,'.join('channel_{}_cont'.format(i) for i,c in enumerate(channel_list, 1))) + """) ,\
VALUES (%s, %s, %s, %s"""+ str(''.join(', %s'*no_of_channels)), """)""" \
(product, region, row['model_name'], row[date_col] , ','.join(row["'"+channel_list+"'"])))
, но это дает ошибку: «str object is not callable»
Как мне продолжить?