2016-05-27 2 views
0

Я работаю с данными CSV от Survey Monkey. Проблема заключается в том, что имена столбцов, которые они используют, слишком длинны для большинства процедур импорта данных CSV-данных базы данных. Имена столбцов - это буквально вопрос, который вы задали в опросе. Таким образом, может потребоваться некоторое время, чтобы сузить это до, скажем, 64 символов для имени столбца базы данных. Как выглядит процедура python, чтобы сузить вопрос до нескольких слов и/или символов? Я не могу просто сделать что-то вроде удаления гласных, поскольку в большинстве случаев это будет слишком долго. Мысли?Python для сокращения предложений?

+1

Вы имеете в виду, кроме того, что просто берете первые символы 'N' строки? – CoryKramer

+0

@CoryKramer это вопросы. Поэтому, если вы просто возьмете первые 64 символа, вы получите дубликаты имен, например «Что вы думаете о»? –

+0

Хорошо, тогда я думаю, вам придется иметь уникальный идентификатор. Или просто сохраняя их по номеру вопроса (например, 'question_1',' question_2' и т. Д.) Или хэшируя строку или что-то в этом роде, но последний вариант не приведет к чему-либо понятному человеку. – CoryKramer

ответ

0

Если вам нужны только заголовки, чтобы быть уникальными и менее 64 (вы используете postgres btw?), Просто используйте хэш.

from hashlib import md5 

columns = ['reallylongcolumname1', 'reallylongcolumname2'] 
out = {} 
for c in columns: 
    h = md5(c).hexdigest() 
    # Use 'h' as your new column header! 
    out.update({c : h}) 

Сохраните словарь «вне» где-нибудь, чтобы позже его расшифровать.

+0

Итак, db нуждается в db, ничего себе. – zaph

+0

Я не сказал, что это было изящное решение! Лучшим решением было бы, конечно, использовать какое-то слабое двухстороннее шифрование. Не стесняйтесь делать предложения поверх того, что здесь! – Thtu

Смежные вопросы