Преобразуйте строковый столбец Pandas, содержащий юникоды, в ascii для загрузки URL - PullRequest
0 голосов
/ 13 июня 2018

У меня есть пандас DataFrame, содержащий столбец с URL-адресами Википедии, который я хочу загрузить.Однако некоторые строки не будут загружаться, потому что они содержат юникоды.Например, 'Kruskal % E2% 80% 93 Wallis_one-way_analysis_of_variance' поднимает следующее

PageError: Page id "Cauchy%E2%80%93Schwarz_inequality" does not match any      pages. Try another id!

Есть ли способ превратить все юникоды в ascii?Так что в этом случае мне нужна функция, которая может создать новый столбец:

old column                            new column
Cauchy%E2%80%93Schwarz_inequality     Cauchy–Schwarz_inequality
Markov%27s_inequality                 Markov's_inequality

1 Ответ

0 голосов
/ 13 июня 2018

urllib.parse.unquote должен сделать свое дело.Надеюсь, это поможет.

In [1]: import urllib
   ...: 
   ...: import pandas as pd
   ...: 
   ...: 
   ...: df = pd.DataFrame({'url': ['Markov%27s_inequality', 'Cauchy%E2%80%93Schwarz_inequality']})
   ...: df['clean_url'] = df['url'].apply(urllib.parse.unquote)
   ...: 

In [2]: df
Out[2]: 
                                 url                  clean_url
0              Markov%27s_inequality        Markov's_inequality
1  Cauchy%E2%80%93Schwarz_inequality  Cauchy–Schwarz_inequality
...