2016-08-26 8 views
7

パンダのデータフレームにすべてのデータをドロップしますが、TypeError: drop() takes at least 2 arguments (3 given)を取得しています。私は基本的に私の列見出しだけで空のデータフレームを望んでいます。パンダのデータフレーム内のすべてのデータを削除

import pandas as pd 

web_stats = {'Day': [1, 2, 3, 4, 2, 6], 
      'Visitors': [43, 43, 34, 23, 43, 23], 
      'Bounce_Rate': [3, 2, 4, 3, 5, 5]} 
df = pd.DataFrame(web_stats) 

df.drop(axis=0, inplace=True) 
print df 
+3

私は@のアイハンのソリューション好きですが、私は、 'DF = pd.DataFrame(列= df.columns)'より速く、より効率的になると思います... – MaxU

+0

を@に同意しますMaxU - 実際には約100倍高速です(1M行と10列のテストデータフレーム) – exp1orer

+1

'df.iloc [0:0]'は実際にdf構築よりも高速です。私はあなたがilocではなくむしろそれを比較していると思いますか? – ayhan

答えて

13

ドロップするラベルを渡す必要があります。

df.drop(df.index, inplace=True) 

デフォルトでは、axis=0で動作します。

あなたは、はるかに効率的です

df.iloc[0:0] 

と同じことを達成することができます。

3

私のお気に入り:

df = df.iloc[0:0] 

しかしあることを認識しdf.index.maxは、()はNaNになります。 私が使用するアイテムを追加するには:

df.loc[0 if math.isnan(df.index.max()) else df.index.max() + 1] = data 
関連する問題