Question

J'ai une liste de fichiers CSV ("file1", "file2", ...") qui ont deux colonnes mais n'ont pas d'étiquettes d'en-tête. Je voudrais leur attribuer des étiquettes d'en-tête et elles comme un DataFrame qui est indexé par le fichier puis indexé par ces étiquettes de colonnes. Par exemple, j'ai essayé:

import pandas

mydict = {}
labels = ["col1", "col2"]
for myfile in ["file1", "file2"]:
  my_df = pandas.read_table(myfile, names=labels)
  # build dictionary of dataframe records
  mydict[myfile] = my_df

test = pandas.DataFrame(mydict)

Cela produit un dataframe, test, indexé par "myfile1", "myfile2"... Cependant, j'aimerais que chacun d'eux soit indexé par "col1" et "col2" aussi bien. Mes questions sont:

  1. Comment puis-je le faire pour que le premier index soit le fichier, et le deuxième index est les colonnes que j'ai attribuées (dans la variable labels)? Pour que je puisse écrire:

    test["myfile1"]["col1"]

à l'heure actuelle, test["myfile1"] Me donne seulement une série de disques.

  1. Aussi, comment puis-je alors réindexer les choses afin que les premiers indices soient les étiquettes de colonne de chaque fichier et le second est le nom de fichier? Pour que je puisse écrire:

    test["col1"]["myfile1"]

ou print test["col1"] puis voir la valeur de "col1" montré pour myfile1, myfile2, etc.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top