Установка уникальной аббревиатуры для каждого столбца в Python
У меня есть такие данные в CSV-файл
Ad Group
Annuity Calculator
Tax Deferred Annuity
Annuity Tables
annuities calculator
annuity formula
Annuities Explained
Deferred Annuies Calculator
Current Annuity Rates
Forbes.com
Annuity Definition
fixed income
Immediate fixed Annuities
Deferred Variable Annuities
401k Rollover
Deferred Annuity Rates
Deferred Annuities
Immediate Annuities Definition
Immediate Variable Annuities
Variable Annuity
Aig Annuities
Retirement Income
retirment system
Online Financial Planner
Certified Financial Planner
Я хочу установить уникальное сокращение для каждого столбца. Например:
- Аннуитетный калькулятор = annca
- аннуитетный калькулятор = annsca
Не могли бы вы помочь мне выяснить, что будет лучшим способом сделать это в Python.
Спасибо
1 ответ
Ваша проблема не полностью определена, но кажется забавной. Я сделал удар в это. Я написал функцию, которая берет список фраз и возвращает словарь, в котором сокращения действуют как ключи. Он начинается с того, что берет первые две буквы каждого слова и соединяет их для сокращения кандидата. Если это сокращение использовалось до того, как оно постепенно вводит в игру все больше и больше букв с начала каждого слова, пока вы не получите уникальное сокращение. Затем я проверил это на ваших данных образца. Вы почти наверняка захотите изменить его, но он должен дать вам несколько идей:
def makeAbbreviations(headers):
abbreviations = {}
for header in headers:
header = header.lower()
words = header.split()
n = max(len(w) for w in words)
i = 2
starts = [w[:i] for w in words]
abbrev = ''.join(starts)
while abbrev in abbreviations and i <= n:
i += 1
for j,w in enumerate(words):
starts[j] = w[:i]
abbrev = ''.join(starts)
if not abbrev in abbreviations: break
abbreviations[abbrev] = header
return abbreviations
myHeaders = ['Ad Group', 'Annuity Calculator', 'Tax Deferred Annuity',
'Annuity Tables', 'annuities calculator', 'annuity formula',
'Annuities Explained', 'Deferred Annuies Calculator',
'Current Annuity Rates', 'Forbes.com', 'Annuity Definition',
'fixed income', 'Immediate fixed Annuities',
'Deferred Variable Annuities', '401k Rollover',
'Deferred Annuity Rates', 'Deferred Annuities',
'Immediate Annuities Definition', 'Immediate Variable Annuities',
'Variable Annuity', 'Aig Annuities', 'Retirement Income', 'retirment system',
'Online Financial Planner', 'Certified Financial Planner']
d = makeAbbreviations(myHeaders)
for (k,v) in d.items(): print(k,v,sep = " = ")
Выход:
imande = immediate annuities definition
adgr = ad group
fiin = fixed income
40ro = 401k rollover
resy = retirment system
vaan = variable annuity
devaan = deferred variable annuities
rein = retirement income
imvaan = immediate variable annuities
fo = forbes.com
imfian = immediate fixed annuities
dean = deferred annuities
anca = annuity calculator
cuanra = current annuity rates
annca = annuities calculator
onfipl = online financial planner
aian = aig annuities
ande = annuity definition
anfo = annuity formula
cefipl = certified financial planner
tadean = tax deferred annuity
deanca = deferred annuies calculator
anex = annuities explained
anta = annuity tables
deanra = deferred annuity rates