2017-06-13 17 views
1

パンダを使用してBasketball ReferenceからHTMLテーブルをインポートしましたが、空の文字列を持つ2つの名前の名前を変更しようとすると迷惑になります。ここで名前が空文字列の場合、Pandas DataFrame列の名前を変更するにはどうすればいいですか?

は、テーブルを引くためのコードです:

tables = pd.read_html('http://www.basketball-reference.com/leagues/NBA_2016_games.html') 
games = tables[0] 

列は次のようになります。u' 'u' .1'列以外のすべての名前を変更する

Out[138]: 

Index([u'Date', u'Start (ET)', u'Visitor/Neutral', u'PTS', u'Home/Neutral', 
     u'PTS.1', u' ', u' .1', u'Notes'], 
     dtype='object') 

は全く問題ありませんが、私は見つけることができませんラベルアプローチを使用して空の名前の名前を変更します。

私は(ここでは、わずか数の列の名前を変更するに限る)デフォルトでこれを試してみました:

column_names = {'Date': 'date', ' ': 'box', ' .1': 'overtime'} 
games.rename(columns = column_names) 

が、これはそのまま' '' .1'列を残します。

このメソッドは動作します:

column_names = {games.columns[6]: 'box', games.columns[7]: 'overtime'} 

を明示的位置を参照することなく、これらの名前を変更する方法はありますか?

答えて

0

空白を末尾に削除するためにstr.stripを追加する働き、また、必要に応じて変更されるdict値(空白を削除):

column_names = {'Date': 'date', '': 'box', '.1': 'overtime'} 
games.columns = games.columns.str.strip() 
games = games.rename(columns = column_names) 
print (games.columns) 
Index(['date', 'Start (ET)', 'Visitor/Neutral', 'PTS', 'Home/Neutral', 'PTS.1', 
     'box', 'overtime', 'Notes'], 
     dtype='object') 

別の解決策は、listに輸出カラム名であると\xaは(ありNO-BREAK SPACE):

print (games.columns.tolist()) 
['Date', 'Start (ET)', 'Visitor/Neutral', 'PTS', 'Home/Neutral', 
'PTS.1', '\xa0', '\xa0.1', 'Notes'] 


column_names = {'Date': 'date', '\xa0': 'box', '\xa0.1': 'overtime'} 
games = games.rename(columns = column_names) 
print (games.columns) 
Index(['date', 'Start (ET)', 'Visitor/Neutral', 'PTS', 'Home/Neutral', 'PTS.1', 
     'box', 'overtime', 'Notes'], 
     dtype='object') 
+0

これは、作業を行い、よりあなた! 直感的に、 'strip()'が動作し、 ''''を使って名前を変更できる理由はありますか? – MichaelWalker

+0

空白はありませんが、[NO-BREAK SPACE](https://stackoverflow.com/a/26069208/2901002)です。しかし、それはまた 'ストリップ'も取り除くことができます。 – jezrael

+0

意味があり、私はユニコードを見るためにリストへの変換の編集/追加を見ました - 偉大なことを知って、もう一度ありがとう! – MichaelWalker

0

これは簡単な解決策になる可能性があります - 明示的に列名を設定します。私にとって

df.columns = [u'Date', u'Start (ET)', u'Visitor/Neutral', u'PTS', u'Home/Neutral', u'PTS.1', u'Rename1', u'Rename2', u'Notes']

関連する問題