удаление неанглийских слов из df.columns - PullRequest
1 голос
/ 13 марта 2019

Я добавляю несколько наборов данных вместе, к сожалению, в сборе данных некоторые сборщики данных добавили перевод к английскому вопросу.

df ['Как вас зовут'] в других наборах данных обозначается как df ['Как вас зовут Como te llamas ']

В идеале мне бы хотелось, чтобы df [' Как вас зовут ']

Это верно для столбца имени, как и для многих других столбцов (возраст, жилье и т. д.).

Я использую nltk, чтобы избавиться от всех неанглийских слов в именах столбцов, используя следующий код:

df_t.columns = " ".join(w for w in nltk.wordpunct_tokenize(df_t.columns) 
    if w.lower() in words or not w.isalpha())

Но я получаю следующееошибка ошибка:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-21-65a4c079ba1a> in <module>()
     34     df_t['File Name'] = df_t['File Name'].str.strip().str[-30:]
     35     df_t.columns = df_t.columns.str.replace(r'(^.*female.*$)', 'n_female_workers')
---> 36     df_t.columns = " ".join(w for w in nltk.wordpunct_tokenize(df_t.columns) if w.lower() in words or not w.isalpha())
     37 
     38     list_month.append(df_t)

~\Anaconda3\lib\site-packages\nltk\tokenize\regexp.py in tokenize(self, text)
    129         # If our regexp matches tokens, use re.findall:
    130         else:
--> 131             return self._regexp.findall(text)
    132 
    133     def span_tokenize(self, text):

TypeError: expected string or bytes-like object

Как ее решить?

1 Ответ

0 голосов
/ 13 марта 2019

Я думаю, вам нужен цикл по именам столбцов для передачи скалярной string в wordpunct_tokenize функции:

df_t = pd.DataFrame(columns=['What is your name Como te llamas'])

words = ['what','is','your','name']
df_t.columns = [" ".join(w for w in nltk.wordpunct_tokenize(x) 
                       if w.lower() in words or not w.isalpha()) 
                       for x in df_t.columns]
print (df_t)
Empty DataFrame
Columns: [What is your name]
Index: []
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...