2016-08-26 2 views
7

Я хотел бы удалить все данные в dataframe pandas, но я получаю TypeError: drop() takes at least 2 arguments (3 given). По сути, я хочу, чтобы пустая область данных с моими заголовками столбцов.Оставьте все данные в pandas dataframe

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

я как @ Айхан, решение которого, но я думаю, что 'ДФ = pd.DataFrame (столбцы = df.columns)' будет быстрее и эффективнее ... – MaxU

+0

согласен с @ MaxU - это на самом деле примерно в 100 раз быстрее (тестовый фрейм с 1М строк и 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() будет нан. Для добавления элементов я использую:

df.loc[0 if math.isnan(df.index.max()) else df.index.max() + 1] = data 
Смежные вопросы