Les Pandas de lecture csv comme type de chaîne

J'ai un bloc de données alpha-numériques touches de qui je veux enregistrer au format csv et de les lire plus tard. Pour diverses raisons, j'ai besoin explicitement de lire cette colonne de clé comme une chaîne de format, j'ai des touches qui sont strictement numérique ou même pire, des choses comme: 1234E5 qui Pandas interprète comme un float. Cela rend évidemment la clé complètement inutile.

Le problème est quand je spécifier une chaîne dtype pour le bloc de données ou d'une colonne de ça, j'ai juste à ordures arrière. J'ai un exemple de code ici:

df = pd.DataFrame(np.random.rand(2,2),
                  index=['1A', '1B'],
                  columns=['A', 'B'])
df.to_csv(savefile)

Le bloc de données qui ressemble à:

           A         B
1A  0.209059  0.275554
1B  0.742666  0.721165

Puis je l'ai lu comme suit:

df_read = pd.read_csv(savefile, dtype=str, index_col=0)

et le résultat est:

   A  B
B  (  <

Est-ce un problème avec mon ordinateur, ou quelque chose que je fais mal ici, ou tout simplement un bug?

  • Il serait bien si vous pouviez dire les "diverses raisons" pourquoi vous voulez l'enregistrer comme une chaîne de caractères. Le contexte peut être très utile pour trouver une solution plus élégante.
InformationsquelleAutor daver | 2013-06-07