Converter Pandas em CSV sem índice
Como sabe, o índice pode ser pensado como um ponto de referência para armazenar e aceder a registos num DataFrame. São únicos para cada linha e normalmente variam de 0 até à última linha do DataFrame, mas também podemos ter números de série, datas, e outras colunas únicas como o índice de um DataFrame.
Mas por vezes, ao exportar ou ler ficheiros, esta coluna de índice extra pode não ser exigida pelo utilizador. O problema será ilustrado mais claramente utilizando o seguinte DataFrame.
import pandas as pd
df = pd.DataFrame([[6,7,8],
[9,12,14],
[8,10,6]], columns = ['a','b','c'])
print(df)
Resultado:
a b c
0 6 7 8
1 9 12 14
2 8 10 6
Como pode ver, temos um índice adicional adicionado ao DataFrame, que pode ser evitado pelo utilizador enquanto o guarda num ficheiro. Se quisermos converter este DataFrame para um ficheiro CSV sem a coluna de índice, podemos fazê-lo definindo o index
para ser False
na função to_csv()
.
Exemplos de códigos:
import pandas as pd
df = pd.DataFrame([[6,7,8],
[9,12,14],
[8,10,6]], columns = ['a','b','c'])
print(df)
df.to_csv("data2.csv", index = False)
Resultado:
a b c
0 6 7 8
1 9 12 14
2 8 10 6
Como visto na saída, o DataFrame tem um índice, mas como definimos o parâmetro index
para False
, o ficheiro CSV exportado não terá aquela coluna extra.
Se exportarmos um ficheiro com uma coluna de índice extra (sem definir o parâmetro index
como False
) e depois tentarmos lê-lo, obteremos uma coluna extra estranha.
import pandas as pd
df = pd.DataFrame([[6,7,8],
[9,12,14],
[8,10,6]], columns = ['a','b','c'])
print(df)
df.to_csv("data2.csv")
df_new = pd.read_csv("data2.csv")
print(df_new)
Resultado:
a b c
0 6 7 8
1 9 12 14
2 8 10 6
Unnamed: 0 a b c
0 0 6 7 8
1 1 9 12 14
2 2 8 10 6
Como se pode ver, o df_new
DataFrame tem uma coluna extra de Unnamed
.