Extrait de code:
import numpy as np
import pandas as pd
myseries=pd.Series(np.random.randn(5))
df=pd.DataFrame(myseries)
df.to_csv("output.csv")
Sortie:
0
0 0.51..
1 0.14..
2 -0.68..
3 0.48..
4 1.89..
Je veux que le nom de la colonne soit "valeurs" au lieu de 0. Comment puis-je faire cela?
Je suppose que je devrais remplacer la dernière instruction par df.to_csv ("output.csv", columns = ["values"]). Mais j'ai eu l'erreur de clé: u"None of [['values']] are in the [columns]"
Je ne sais pas ce que cela signifie.
[mettre à jour]
Plusieurs réponses disent que je devrais utiliser df.columns=['values']
. Eh bien, ça ne marche pas pour moi. Je ne me préoccupe pas seulement de l’image DataFrame, mais également de l’analyse du fichier CSV. Le cadre de données a l'air bien, mais pas le fichier csv. C'est la partie déroutante.
...
df.columns=["values"]
df.to_csv("output.csv")
Il dit: IOError: [Errno 13] Permission denied: 'output.csv'
.
J'utilise ensuite le chemin absolu "C:\Utilisateurs\monnom\Bureau\sortie.csv", l'erreur est semblable à: IOError: [Errno 13] Permission denied: 'C:\\Users\\myname\\Desktop\\output.csv'
Je ne sais pas pourquoi cette erreur, mais c'est plutôt déroutant.
Pour plus d’informations, j’ai installé anaconda-2.7 sur win10. J'ai testé le code avec spyder.
Vous pouvez définir le nom de colonne dans le constructeur DataFrame
:
df = pd.DataFrame(myseries, columns=['values'])
df.to_csv("output.csv")
Ou:
df = pd.DataFrame({'values':myseries})
print (df)
values
0 -0.429758
1 -0.019931
2 1.189596
3 1.309223
4 -0.337061
df.to_csv("output.csv")
Ou définissez le paramètre header
dans DataFrame.to_csv
:
df = pd.DataFrame(myseries)
df.to_csv("output.csv", header=['values'])
Ou dans Series.to_csv
:
myseries.to_csv("output.csv", header=['values'])
Pour définir le nom de la colonne sur 'valeurs', essayez:
df.columns = ['values']
df.columns = ['values']
Recherche plus avant de poser des questions.