Я работаю над приложением Flask, в котором основная функция берет загруженный CSV-файл, превращает его в Pandas фрейм данных, а затем запускает серию анализов для него.
Приложение работает, но несколько жесток в процессе загрузки, требуя, чтобы он точно совпадал с именами столбцов и ожидаемыми значениями.
Я хочу предоставить резервную функцию, которая будет динамически генерировать формы, которые будут задавать вопросы пользователю, чтобы вычислить из отображений столбцов обратно к исходному шаблону.
Так, например, если шаблон, который работал, был размечен следующим образом:
['Name', 'Phone', 'Email']
и загруженная версия была:
['Имя клиента', 'Номер телефона', 'Адрес электронной почты]
Я бы хотел спросить:
Какие из [«Имя клиента», «Номер телефона», «Адрес электронной почты»] соответствуют «Имени».
Предпочтительно, я бы хотел использовать Flask -wtf для обеспечения согласованности, если нет явно лучшего способа сделать это.
Я предполагаю, что способ сделать это будет сделать что-то вроде:
import pandas as pd
from flask_wtf import FlaskForm
from wtforms import SelectField
minimum_viable_columns = ['Name', 'Phone', 'Email']
data = pd.read_csv(uploaded_file)
potential_columns = []
for x in data.columns.values.tolist():
if x not in minimum_viable_columns:
potential_columns.append(x)
missing_columns = []
for x in minimum_viable_columns:
if x not in claims.columns.values.tolist():
missing_columns.append(x)
class MatchingForm(FlaskForm):
field_name = SelectField('Corresponding field name', choices=potential_columns)
Я должен был бы сгенерировать эти формы для каждого столбца в missing_columns, и я пытаюсь найти хороший способ сделать это и мы надеемся, что ie их всех на одну кнопку отправки.