Estoy empezando con Pandas y estoy leyendo en un archivo csv usando el método read_csv()
. La dificultad que tengo es evitar que los pandas conviertan mis números de teléfono en números grandes, en lugar de mantenerlos como cadenas. Definí un convertidor que acababa de dejar los números solo, pero luego todavía se convirtieron en números. Cuando cambié mi convertidor para anteponer una 'z' a los números de teléfono, se quedaron cadenas. ¿Hay alguna forma de mantenerlos sin modificar los valores de los campos?Especificación del tipo de datos en el lector csv de Pandas
Respuesta
Parece que no puede evitar que los pandas intenten convertir valores numéricos/booleanos en el archivo CSV. Eche un vistazo al código fuente de pandas para los analizadores IO, en particular las funciones _convert_to_ndarrays
y _convert_types
. https://github.com/pydata/pandas/blob/master/pandas/io/parsers.py
Siempre se puede asignar el tipo que desea después de haber leído el archivo:
df.phone = df.phone.astype(str)
Gracias @lbolla, esto ayudó en uno de mis correcciones de errores, donde un valor flotante se leyó como una cadena ya que otra columna era una cadena, y más tarde causó problemas en las funciones de agregación. Tenía que hacer df ['col'] = df ['col']. Astype (float64) –
Desde pandas 0.11.0 se puede utilizar dtype argumento para especificar explícitamente el tipo de datos para cada columna:
d = pandas.read_csv('foo.csv', dtype={'BAR': 'S10'})
Tenga en cuenta que esto no está disponible (aún, con suerte) para algunas otras funciones de entrada, como 'pandas.read_fwf()' – ReneSac
I revisado el tema y soporte para 'dtype' ya ha sido agregado a' pandas.read_fwf' :) – zero323
Este método no funciona para conjuntos de datos grandes ¿hay alguna otra manera de leer un csv y solo columnas particulares? –
- 1. pandas leyendo orientación csv
- 2. Lector Python UTF-16 CSV
- 3. Especificación del tipo de contenido en rspec
- 4. Analizador/lector de CSV para C#?
- 5. subscribiendo una línea específica del lector csv de python?
- 6. comportamiento del lector csv con ninguno y cadena vacía
- 7. lector CSV de Python y la iteración
- 8. Scikit y Pandas: Ajuste de datos grandes
- 9. datos Normalizar en pandas
- 10. C parámetros # tipo de especificación
- 11. pandas trama de datos jerárquica
- 12. pandas: trama de datos única
- 13. lector de datos es incompatible ... miembro no tiene correspondiente en la columna lector de datos
- 14. manejo de datos faltantes en Pandas
- 15. Agregar dos marcos de datos de pandas
- 16. lector de búfer que no recibe datos del socket
- 17. pandas, matplotlib, utilice el índice del marco de datos como etiquetas de control del eje
- 18. Redefiniendo el índice en una trama de datos pandas objeto
- 19. creando el marco de datos de pandas desde múltiples archivos
- 20. Datos de salida de todas las columnas en un marco de datos en pandas
- 21. invariantes Especificación de los constructores de datos
- 22. Especificación de la restricción del constructor para el parámetro genérico
- 23. indexar una trama de datos pandas
- 24. XML para pandas trama de datos
- 25. .csv como datos en función del éxito ajax
- 26. Inferencia de tipo de método en la especificación Java
- 27. Convertir datatable a lector de datos
- 28. Convirtiendo datos a desaparecidos en pandas
- 29. Procedimiento de especificación del paquete
- 30. Tabla de datos ADO.NET frente a lector de datos
Por favor, muéstranos tu código –
@Gardner: has considerado aceptar una respuesta? –