J'ai essayé le code suivant:
import pandas as pd
list1 = {'Names':[1,2,3,4,5]}
df = pd.DataFrame(list1)
df_csv = pd.read_csv('try.csv')
df_csv['Names'] = list1
df_csv.to_csv('try.csv', index=False, mode= 'a')
L'erreur est la suivante:
"ValueError: Length of values does not match length of index"
Je comprends que la taille de la trame de données ne correspond pas, mais comment puis-je résoudre ce problème?
Voici donc ce que je veux dans le fichier try.csv après l'ajout: fichier try.csv
3 réponses
D'après votre code, le correct serait:
import pandas as pd
list1 = {'Names':[1,2,3,4,5]}
df = pd.DataFrame(list1)
df_csv = pd.read_csv('try.csv')
df_csv['Names'] = df.Names # changed here
df_csv.to_csv('try.csv', index=False, mode= 'w')
Vous pouvez essayer d'utiliser concat
. Supposons que votre df_csv
comporte plus de lignes comme ci-dessous, vous pouvez créer une nouvelle trame de données avec list1
et concaténer en tant que nouvelle colonne:
import pandas as pd
list1 = {'Names':[1,2,3,4,5]}
# creating dataframe with initial value instead of pd.read_csv
df_csv = pd.DataFrame({'col_1': [100,200,300,400,500,600,700]})
print(df_csv)
Résultat:
col_1
0 100
1 200
2 300
3 400
4 500
5 600
6 700
Maintenant, concaténez à df_csv
avec axis=1
en créant une nouvelle trame de données avec list1
:
list1_df = pd.DataFrame(list1)
# concatenate df_csv and dataframe with list1_df
df_csv = pd.concat([df_csv,list1_df], axis=1)
print(df_csv)
Résultat:
col_1 Names
0 100 1.0
1 200 2.0
2 300 3.0
3 400 4.0
4 500 5.0
5 600 NaN
6 700 NaN
Vous essayez d'affecter un dictionnaire ici, alors que votre ligne nécessite une liste de valeurs. Vous devriez essayer ceci:
import pandas as pd
list1 = {'Names':[1,2,3,4,5]}
df = pd.DataFrame(list1)
df_csv = pd.read_csv('try.csv')
df_csv['Names'] = list1['Names']
df_csv.to_csv('try.csv', index=False, mode= 'a')
De plus, il n'est pas clair pourquoi auriez-vous besoin d'un df DataFrame supplémentaire pour cela?
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.