Si je suis en train de lire un morceau de csv je reçois la structure de données suivantesConcat change le type de catégorie à l'objet/float64
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 100000 entries, (2015-11-01 00:00:00, 4980770) to (2016-06-01 00:00:00, 8850573)
Data columns (total 5 columns):
CHANNEL 100000 non-null category
MCC 92660 non-null category
DOMESTIC_FLAG 100000 non-null category
AMOUNT 100000 non-null float32
CNT 100000 non-null uint8
dtypes: category(3), float32(1), uint8(1)
memory usage: 1.9+ MB
Si je lis l'ensemble csv et concat les blocs comme ci-dessus, je reçois la structure suivante:
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 30345312 entries, (2015-11-01 00:00:00, 4980770) to (2015-08-01 00:00:00, 88838)
Data columns (total 5 columns):
CHANNEL object
MCC float64
DOMESTIC_FLAG category
AMOUNT float32
CNT uint8
dtypes: category(1), float32(1), float64(1), object(1), uint8(1)
memory usage: 784.6+ MB
Pourquoi les variables catégorielles sont-elles modifiées en objet/float64? Comment puis-je éviter ce changement de type? Esp. le float64
Voici le code de concaténation:
df = pd.concat([process(chunk) for chunk in reader])
fonction de processus
fait que certaines missions de nettoyage et de type
pouvez-vous poster le code que vous utilisez pour charger et concaténer? –
Catégoriques ont également des problèmes avec «NaN» parfois –
ajouté au texte – snovik