Python convertir liste séparée par des virgules pour les pandas dataframe
J'ai du mal à convertir une liste séparée par des virgules dans un multi de la colonne (7) de données-cadre.
print (type(mylist))
<type 'list'>
Print(mylist)
['AN,2__AAS000,26,20150826113000,-283.000,20150826120000,-283.000', 'AN,2__AE000,26,20150826113000,0.000,20150826120000,0.000',.........
Le code suivant crée un bloc d'une seule colonne:
df = pd.DataFrame(mylist)
J'ai examiné la fonction intégrée de csv fonctionnalité pour les Pandas, cependant mon csv les données sont conservées dans une liste. Comment puis-je simplement secrète de la liste dans un 7 les données de la colonne-cadre.
Merci d'avance.
- Je ne peux pas reproduire l'erreur :
l=[['AA','2__000',26,20150826113000,-283.000,20150826120000,-283.000],['BB','2__DI9',26,20150826113000,0.000,20150826120000,0.000],[ 'CC','2__GH6',26,20150826113000,-269.000,20150826120000,-269.000]] pd.DataFrame(l)
fonctionne très bien - Vous pouvez poster à la sortie de
print(mylist)
- J'ai limité les résultats ci-dessus, comme le sont 2 lignes. Le dataframe est créé lors de l'impression(df), je reçois toutes les données de suivi de [1922 lignes x colonnes 1]
- Vous pouvez poster les quelques premières lignes ensuite, vous avez à montrer comment les données sont stockées dans votre liste, de sorte que nous pouvons reproduire votre erreur
- Comme de plus amples informations, les données sont à l'origine à partir d'un fichier qui a un mélange de CSV des données et des métadonnées qui je l'ai enlevé et passé le CSV lignes d'une liste.
- J'ai juste mis à jour le texte principal avec la production réelle à partir de la liste. Merci
- Non, je veux voir la sortie de
print(mylist[:3])
- ["UN,2__AAS000,26,20150826113000,-283.000,20150826120000,-283.000', 'UNE,2__AE000,26,20150826113000,0.000,20150826120000,0.000',
- Votre liste semble que c'est une liste de chaînes de caractères plutôt que d'une liste de listes, y a incorporé des retours chariot/nouvelles lignes? Modifier ce dans votre question, non pas comme un commentaire
- Grâce EdChum, vous étiez sur le ballon.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de diviser chaque chaîne dans votre liste:
De sortie:
Si vous connaissez le nombre de lignes à ignorer dans un fichier csv vous pouvez tout faire avec read_csv à l'aide de
skiprows=lines_of_metadata
:Ou si chaque ligne de métadonnées commence avec un certain caractère, vous pouvez utiliser commentaire:
Si vous avez besoin de spécifier plus d'un caractère, vous pouvez combiner
itertools.takewhile
, qui conduira les lignes commençant parxxx
:À l'aide de vos données d'entrée en ajoutant quelques lignes commençant par #!!:
Sorties:
xxx
dansstartswith('xxx')
vous pouvez convertir la liste dans un 7 colonne de données-image de la manière suivante:
Je rencontre un problème similaire. - Je le résoudre de cette façon.
Résultat: