Importer une colonne de données pandas en tant que chaîne non int

Je souhaiterais importer le csv suivant sous forme de chaînes non int64. Pandas read_csv le convertit automatiquement en int64, mais j’ai besoin de cette colonne comme chaîne.

ID 00013007854817840016671868 00013007854817840016749251 00013007854817840016754630 00013007854817840016781876 00013007854817840017028824 00013007854817840017963235 00013007854817840018860166 df = read_csv('sample.csv') df.ID >> 0 -9223372036854775808 1 -9223372036854775808 2 -9223372036854775808 3 -9223372036854775808 4 -9223372036854775808 5 -9223372036854775808 6 -9223372036854775808 Name: ID 

Malheureusement, l’utilisation de convertisseurs donne le même résultat.

 df = read_csv('sample.csv', converters={'ID': str}) df.ID >> 0 -9223372036854775808 1 -9223372036854775808 2 -9223372036854775808 3 -9223372036854775808 4 -9223372036854775808 5 -9223372036854775808 6 -9223372036854775808 Name: ID 

Je veux juste répéter que cela fonctionnera chez les pandas> = 0.9.1:

 In [2]: read_csv('sample.csv', dtype={'ID': object}) Out[2]: ID 0 00013007854817840016671868 1 00013007854817840016749251 2 00013007854817840016754630 3 00013007854817840016781876 4 00013007854817840017028824 5 00013007854817840017963235 6 00013007854817840018860166 

Je crée un problème à propos de la détection des dépassements d’entiers également.

EDIT: Voir la résolution ici: https://github.com/pydata/pandas/issues/2247

Ce n’est probablement pas la manière la plus élégante de le faire, mais cela fait le travail.

 In[1]: import numpy as np In[2]: import pandas as pd In[3]: df = pd.DataFrame(np.genfromtxt('/Users/spencerlyon2/Desktop/test.csv', dtype=str)[1:], columns=['ID']) In[4]: df Out[4]: ID 0 00013007854817840016671868 1 00013007854817840016749251 2 00013007854817840016754630 3 00013007854817840016781876 4 00013007854817840017028824 5 00013007854817840017963235 6 00013007854817840018860166 

Remplacez simplement '/Users/spencerlyon2/Desktop/test.csv' par le chemin d’access à votre fichier