2017-09-15 6 views
0

私はPythonの初心者です。 csvファイルを読み込んだ後にインデックス情報を取得しようとしたときに何が起こったのか説明できますか?'Index'オブジェクトはPythonで呼び出すことができません

import pandas as pd 

df = pd.read_csv('olympics.csv', index_col=0, skiprows=1) 

for col in df.columns: 
    if col[:2]=='01': 
     df.rename(columns={col:'Gold'+col[4:]}, inplace=True) 
    if col[:2]=='02': 
     df.rename(columns={col:'Silver'+col[4:]}, inplace=True) 
    if col[:2]=='03': 
     df.rename(columns={col:'Bronze'+col[4:]}, inplace=True) 
    if col[:1]=='№': 
     df.rename(columns={col:'#'+col[1:]}, inplace=True) 

names_ids = df.index.str.split('\s\(') # split the index by '(' 

df.index = names_ids.str[0] 
df['ID'] = names_ids.str[1].str[:3] 

df = df.drop('Totals') 
df.head() 

次に、このデータフレームを取得します。

dataframe

しかし、私はdf.indexを(使用してインデックス情報を取得しようと)、私は、インデックスオブジェクトは呼び出し可能ではないと言って、エラーが発生しました。

+0

代わりにdf.indexを試してみてください – Vaishali

+0

なぜでしょうか。なぜなら、これはデフォルトで0(インデックス)になっています。あたかもそれが関数であったかのように呼びますか?数行前にこの行のコード 'df.index.str.split(...) 'があるので、これは分かりません。 –

+0

ありがとうございます。それらの行は割り当てに与えられているので、実際には気付かない。私はまた、Pythonには新しいので、私のばかげた質問には申し訳ありません。 – Yue

答えて

0

「df.index」を使用する必要があります。「df.index()」は関数であることを示します。 "df.index"は単に "インデックス"がDataFrameのサブセットであることを意味します。列を同じ方法で呼び出すことができます(例:df ['ID'] - > df.ID)。

また、 "df.drop"で軸を指定するのは良い習慣です。 df = df.drop( 'some_column'、1))

関連する問題