2015-01-02 8 views
9

私は迷っていますが、データフレームのインデックスをリセットすることはできません。私はtest.head()を実行するとパンダリセットインデックスが機能していないようですか?

、私は下の出力を取得する:あなたが見ることができるように

test.head

、データフレームはスライスなので、インデックスが範囲外です。 私がしたいのは、このデータフレームのインデックスをリセットすることです。だから私はtest.reset_index(drop=True)を実行する。新しいインデックスのように見える

reset

が、そうではありません。これは次のように出力します。 test.headを再度実行すると、インデックスは同じです。 lambda.applyまたはiterrows()を使用しようとすると、データフレームに問題が発生します。

インデックスを実際にリセットするにはどうすればよいですか?

+0

私は残念ですが、それらのテーブルは...そのような巨大な画像です。 @ _ @私は割れていた。 – kuanb

+1

@kuanbあなたはテーブルがJupyterのノートブック5で再フォーマットされていることを知ってうれしいでしょう:) –

答えて

7

BrenBarnの回答が機能します。

次のようにもインデックスをリセットする方法の関節ほどのトラブルシューティングされていない、this thread経由で働いていた:

test = test.reset_index() 
del test['index'] 
+1

魅力的なように働いた! – Subspacian

26

reset_indexデフォルトでは、DataFrameは変更されません。リセットインデックスを使用して新しい DataFrameを返します。オリジナルを変更する場合は、inplace引数:df.reset_index(drop=True, inplace=True)を使用してください。または、df = df.reset_index(drop=True)を実行してreset_indexの結果を割り当てます。

1

私はコードVERITASの答えにに追加します。

場合すでにインデックス列が指定されている場合は、デルを保存できます。私の仮定的な例で:

df_total_sales_customers = pd.DataFrame({'Sales': total_sales_customers['Sales'], 
           'Customers': total_sales_customers['Customers']}, index = total_sales_customers.index) 

    df_total_sales_customers = df_total_sales_customers.reset_index() 
関連する問題