Eu tenho o seguinte código que importa um arquivo CSV. Existem 3 colunas e quero definir as duas primeiras para variáveis. Quando defino a segunda coluna para a variável "eficiência", a coluna de índice também é abordada. Como posso me livrar da coluna do índice?
df = pd.DataFrame.from_csv('Efficiency_Data.csv', header=0, parse_dates=False)
energy = df.index
efficiency = df.Efficiency
print efficiency
Eu tentei usar
del df['index']
depois que eu defino
energy = df.index
que encontrei em outro post, mas que resulta em "KeyError: 'index'"
index.name = None
.Ao ler para e do seu arquivo CSV, inclua o argumento
index=False
, por exemplo:e ler do csv
Isso deve evitar o problema, para que você não precise corrigi-lo mais tarde.
fonte
index_col=False
.df.to_sql("table",cursor,if_exists="append",index=False)
também corrige o erro sqlitesqlite3.OperationalError: table message has no column named index
index=False
parato_excel()
eindex_col=False
comread_csv()
pandas 0.23.4. : - /df.reset_index(drop=True, inplace=True)
fonte
drop
: "Não tente inserir índice nas colunas do quadro de dados. Isso redefine o índice para o índice inteiro padrão". pandas.pydata.org/pandas-docs/stable/generated/…inplace=True
.Você pode definir uma das colunas como um índice, caso seja um "id", por exemplo. Nesse caso, a coluna do índice será substituída por uma das colunas que você escolheu.
fonte
Se o seu problema for igual ao meu, você só deseja redefinir os cabeçalhos da coluna de 0 para o tamanho da coluna. Faz
EDITAR:
Não é uma boa ideia se você tiver tipos de dados heterogêneos. Melhor apenas usar
fonte
você pode especificar qual coluna é um índice no seu arquivo csv usando o parâmetro index_col da função from_csv, se isso não resolver o problema, forneça um exemplo dos seus dados
fonte
Uma coisa que eu faço é
df=df.reset_index()
entãodf=df.drop(['index'],axis=1)
fonte
df.reset_index().drop(columns=['yourfirstindex', 'yoursecondindex'])
, isso funciona assim : ele funciona com 'index' apenas no caso padrão em que o índice não tem um nome e depois se torna uma coluna chamada 'index' comdf.reset_index().drop(columns=['index'])
. O parâmetro adicionadoaxis=1
é o padrão. Este método não é recomendado, o @ SubhojitMukherjeereset_index(inplace=True)
trabalha "no local" e, portanto, economiza memória.