Ao apagar uma coluna em um DataFrame que eu uso:
del df['column_name']
E isto funciona muito bem. Porque posso'não posso usar o seguinte?
del df.column_name
Como você pode acessar a coluna/série como df.column_name
, eu espero que isso funcione.
A melhor maneira de fazer isso em pandas é utilizar drop
:
df = df.drop('column_name', 1)
onde 1
é o número do eixo (0
para as linhas e 1
para as colunas).
Para apagar a coluna sem ter que reatribuir o `df' você pode fazer:
df.drop('column_name', axis=1, inplace=True)
Por último, para deixar cair por coluna número em vez de por coluna etiqueta, tente apagar, por exemplo, a 1ª, 2ª e 4ª colunas:
df = df.drop(df.columns[[0, 1, 3]], axis=1) # df.columns is zero-based pd.Index
Como você'adivinhou, a sintaxe certa é
del df['column_name']
It's difícil de fazer o del df.column_name
funcionar simplesmente como resultado das limitações sintácticas em Python. del df[nome]
é traduzido para df.__delitem__(nome)
sob as capas por Python.
It's boa prática para utilizar sempre a notação []
. Uma razão é que a notação de atributos (df.column_name
) não funciona para índices numerados:
In [1]: df = DataFrame([[1, 2, 3], [4, 5, 6]])
In [2]: df[1]
Out[2]:
0 2
1 5
Name: 1
In [3]: df.1
File "<ipython-input-3-e4803c0d1066>", line 1
df.1
^
SyntaxError: invalid syntax