Pandas to_csv call está anteponiendo una coma

Tengo un archivo de datos, apples.csv, que tiene encabezados como:

"id","str1","str2","str3","num1","num2" 

Lo leí en un dataframe con pandas:

 apples = pd.read_csv('apples.csv',delimiter=",",sep=r"\s+") 

Luego le hago algunas cosas, pero ignórelo (lo he comentado todo, y mis problemas generales todavía ocurren, por lo que dicho material es irrelevante aquí).

Entonces lo guardo

 apples.to_csv('bananas.csv',columns=["id","str1","str2","str3","num1","num2"]) 

Ahora, mirando bananas.csv, sus encabezados son:

 ,id,str1,str2,str3,num1,num2 

No más citas (de las que realmente no me importa, ya que no afectan nada en el archivo), y luego esa coma principal. Las filas subsiguientes ahora tienen una columna adicional allí, por lo que ahorra 7 columnas. Pero si lo hago:

 print(len(apples.columns)) 

Inmediatamente antes de guardar, muestra 6 columnas …

Normalmente estoy en Java / Perl / R, y tengo menos experiencia con Python y particularmente con Pandas, así que no estoy seguro de que esto sea “sí, simplemente hace eso” o cuál es el problema, pero he pasado mucho tiempo tratando de entenderlo. esto y no se puede encontrar a través de la búsqueda.

¿Cómo puedo hacer que no haga la preparación de una coma y, quizás, lo más importante: por qué lo hace?

Establecer index=False (el valor predeterminado es True por lo tanto, la razón por la que ve esta salida) es que no guarda los valores del índice en su csv, vea la documentación

Así que esto:

 df = pd.DataFrame({'a':np.arange(5), 'b':np.arange(5)}) df.to_csv(r'c:\data\t.csv') 

resultados en

 ,a,b 0,0,0 1,1,1 2,2,2 3,3,3 4,4,4 

Mientras que esto:

 df.to_csv(r'c:\data\t.csv', index=False) 

resultados en esto:

 a,b 0,0 1,1 2,2 3,3 4,4 

Es para la situación en la que puede tener algunos valores de índice que desea guardar