Как преобразовать текст в столбце в другой формат на основе пользовательского словаря? - PullRequest
0 голосов
/ 17 июня 2020

Я хочу сделать данные об образовании в моем наборе данных согласованными на основе словаря названий университетов / колледжей. Как мне запустить код для моего словаря и получить желаемый результат? Данные состоят из сокращений и разговорных имен.

Может ли кто-нибудь привести пример этого в R. Я готов попробовать это в python также, R - это просто мое предпочтение.

Это пример моего словаря:

*University Name Dictionary
California Institute of Technology
New York University
Massachusetts Institute of Technology
Georgia Institute of Technology
Rutgers University
University of California, Berkley
University of California, Los Angeles

Это мои данные:

*Education
Cal Tech
NYU
MIT
Ga Tech
Georgia Tech
Rutgers
Berkley
UCLA

Вот что я хочу:

*Education      *New Education
Cal Tech        California Institute of Technology
NYU             New York University
MIT             Massachusetts Institute of Technology
Ga Tech         Georgia Institute of Technology
Georgia Tech    Georgia Institute of Technology
Rutgers         Rutgers University
Berkley         University of California, Berkley
UCLA            University of California, Los Angeles

Извиняюсь, если для этого уже есть решение, просто не нашел. Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 17 июня 2020

pandas имеет функцию replace(dictionary), где dictionary похоже на

 {"Cal Tech": "California Institute of Technology"} 

Потому что pandas.DataFrame вдохновлен R, поэтому, вероятно, R имеет что-то похожее.


data = {
    'Cal Tech': 'California Institute of Technology',
    'NYU': 'New York University',
    'MIT': 'Massachusetts Institute of Technology',
    'Ga Tech': 'Georgia Institute of Technology',
    'Georgia Tech': 'Georgia Institute of Technology',
    'Rutgers': 'Rutgers University',
    'Berkley': 'University of California, Berkley',
    'UCLA': 'University of California, Los Angeles',
}

import pandas as pd

df = pd.DataFrame({
'Education': ['Cal Tech', 'NYU', 'MIT', 'Ga Tech', 'Georgia Tech', 'Rutgers', 'Berkley', 'UCLA']
})

df['New Education'] = df['Education'].replace(data)

print(df)

Результат:

      Education                          New Education
0      Cal Tech     California Institute of Technology
1           NYU                    New York University
2           MIT  Massachusetts Institute of Technology
3       Ga Tech        Georgia Institute of Technology
4  Georgia Tech        Georgia Institute of Technology
5       Rutgers                     Rutgers University
6       Berkley      University of California, Berkley
7          UCLA  University of California, Los Angeles

Если вы используете regex=True, то его можно заменить и в более длинной строке

data = {
    'Cal Tech': 'California Institute of Technology',
    'NYU': 'New York University',
    'MIT': 'Massachusetts Institute of Technology',
    'Ga Tech': 'Georgia Institute of Technology',
    'Georgia Tech': 'Georgia Institute of Technology',
    'Rutgers': 'Rutgers University',
    'Berkley': 'University of California, Berkley',
    'UCLA': 'University of California, Los Angeles',
}

import pandas as pd

df = pd.DataFrame({
  'Education': ['I am from MIT']
})

df['New Education'] = df['Education'].replace(data, regex=True)

print(df)

Результат:

       Education                                    New Education
0  I am from MIT  I am from Massachusetts Institute of Technology

Do c: pandas .DataFrame.replace ()

...