2017-09-24 7 views
0

PythonのPandasでデータセットをインポートしていますが、残念ながらクリーニングが必要です。インポート後、引用符とスペースを2つの列(alpha2alpha3)ですべて削除する必要があります。これは私がこれを行う方法を現在:パンダでCSVファイルをインポート中にデータを効率的にクリーニング

私oppinionで
# Add alpha2 country codes to custom dataset to normalize data 
country_codes = pd.read_csv('datasets/country_codes.csv').rename(columns = {'Alpha-2 code':'alpha2', 'Alpha-3 code':'alpha3'}) 
# Remove commas and spaces from dataset 
country_codes['alpha2'] = country_codes['alpha2'].str.replace('"', '') 
country_codes['alpha2'] = country_codes['alpha2'].str.replace(' ', '') 
country_codes['alpha3'] = country_codes['alpha3'].str.replace('"', '') 
country_codes['alpha3'] = country_codes['alpha3'].str.replace(' ', '') 

私はいくつかの簡単なコマンドの5つのルールを必要とするので、これは少し醜いです。これはより少ないコードでより効率的に行うことができますか?

次のようにあなたが regexdf.replaceを使用することができます

答えて

1

country_codes[['alpha2', 'alpha3']].replace(r'"|\s','', 
               regex=True, 
               inplace=True) 

完全なコードは次のようになります。

country_codes = pd.read_csv('datasets/country_codes.csv').rename(columns = {'Alpha-2 code': 'alpha2', 'Alpha-3 code':'alpha3'}) 
country_codes[['alpha2', 'alpha3']].replace(r'"|\s','', 
              regex=True, 
              inplace=True) 

ただし、以下のコメントで@Jeffによって参照さとして代わりにを使用しない方が良いでしょう。

country_codes[['alpha2', 'alpha3']] = country_codes[['alpha2', 'alpha3']].replace(r'"|\s','', 
               regex=True) 

詳細については、hereのドキュメントを参照してください。

+0

inplace =連鎖式のTrueは、慣習的ではなく、ときどきしか動作しない場合があります。単に新しい値を返すだけです – Jeff

関連する問題