2013-11-20 11 views
40

私はCSVファイルをインポートする次のコードを持っています。 3つの列があり、それらの最初の2つを変数に設定したいと思います。 2番目の列を変数「効率」に設定すると、インデックス列も固定されます。どのようにしてインデックス列を取り除くことができますか?パンダのインデックス列を削除する

df = pd.DataFrame.from_csv('Efficiency_Data.csv', header=0, parse_dates=False) 
energy = df.index 
efficiency = df.Efficiency 
print efficiency 

私は別のポストに見つかりましたが、 "KeyError例外: 'インデックス'" の結果があること

energy = df.index 

設定した後、私は

del df['index'] 

を使用してみました

答えて

27

データフレームとシリーズは常にインデックスを持っています。列の横に表示されますが、列ではないため、del df ['index']が機能しませんでした。

インデックスを単純な連番で置き換える場合は、df.reset_index()を使用してください。 10 minutes to Pandasのようなパンダのドキュメントを少し読んで、なぜインデックスが使用されているのかを知ることを強くお勧めします。

+0

ありがとう!私はパンダを使用しないで別の方法でインポートすることにしました。私はそれぞれの列でいくつかの算術演算を実行する必要があり、Pythonは索引列が添付されているのが好きではありませんでした。 Pandasは確かにデータをインポートする最も簡単な方法ですが、私が見つけた最高のものではありません。 –

+0

パンダを使って算術演算を試しましたか? –

+0

インデックス名を削除できますか? – Quant

0

することができますがfrom_csvのindex_colパラメータを使用して、csvファイルのインデックスである列を指定するfunction ifこれはあなたの問題を解決しませんあなたのデータの例を提供してください

1

問題がカラムヘッダーを0からカラムサイズにリセットする場合と同じです。あなたが不均一なデータ型を持っている場合

ない良いアイデア:

df = pd.DataFrame(df.values); 

EDITを行います。より良いだけ

df.columns = range(len(df.columns)) 
73

にして、CSVファイルから読み込むので、たとえば

df.to_csv(filename , index = False) 

およびCSVから

df.read_csv(filename , index = False) 

を読むためにこれを防止すべきであるために= Falseの引数インデックスが含ま使います問題は後で修正する必要はありません。

+2

ありがとうございます。これはまさに質問が探しているものです。 –

+0

"header = False"はヘッダーを同じ方法で削除するために機能します –

+0

jsonに書き込むときはどうですか? – pyd

4

たとえば、「id」の場合は、列の1つをインデックスとして設定できます。 この場合、インデックス列は、選択した列の1つに置き換えられます。

df.set_index('id', inplace=True) 
0

df.reset_index(ドロップ= Trueの場合、インプレース=真)

関連する問題