tablas para manejo leer importar funciones datos crear con archivos archivo abrir python r csv pandas

para - leer archivos csv en python



lee el archivo csv y devuelve data.frame en Python (5)

Aquí hay una alternativa a la biblioteca de pandas usando el módulo csv incorporado de Python.

import csv from pprint import pprint with open(''foo.csv'', ''rb'') as f: reader = csv.reader(f) headers = reader.next() column = {h:[] for h in headers} for row in reader: for h, v in zip(headers, row): column[h].append(v) pprint(column) # Pretty printer

imprimirá

{''Date'': [''2012-06-11'', ''2012-06-12'', ''2012-06-13'', ''2012-06-14'', ''2012-06-15'', ''2012-06-16'', ''2012-06-17''], ''factor_1'': [''1.255'', ''1.258'', ''1.249'', ''1.253'', ''1.258'', ''1.263'', ''1.264''], ''factor_2'': [''1.548'', ''1.554'', ''1.552'', ''1.556'', ''1.552'', ''1.558'', ''1.572''], ''price'': [''1600.20'', ''1610.02'', ''1618.07'', ''1624.40'', ''1626.15'', ''1626.15'', ''1626.15'']}

Tengo un archivo CSV, "value.txt" con el siguiente contenido: las primeras filas del archivo son:

Date,"price","factor_1","factor_2" 2012-06-11,1600.20,1.255,1.548 2012-06-12,1610.02,1.258,1.554 2012-06-13,1618.07,1.249,1.552 2012-06-14,1624.40,1.253,1.556 2012-06-15,1626.15,1.258,1.552 2012-06-16,1626.15,1.263,1.558 2012-06-17,1626.15,1.264,1.572

En R, podemos leer este archivo usando

price <- read.csv("value.txt")

y eso devolverá un data.frame que puedo usar para operaciones estadísticas:

> price <- read.csv("value.txt") > price Date price factor_1 factor_2 1 2012-06-11 1600.20 1.255 1.548 2 2012-06-12 1610.02 1.258 1.554 3 2012-06-13 1618.07 1.249 1.552 4 2012-06-14 1624.40 1.253 1.556 5 2012-06-15 1626.15 1.258 1.552 6 2012-06-16 1626.15 1.263 1.558 7 2012-06-17 1626.15 1.264 1.572

¿Hay alguna forma Pythonic para obtener la misma funcionalidad?


Nota bastante limpia, pero:

import csv with open("value.txt", "r") as f: csv_reader = reader(f) num = '' '' for row in csv_reader: print num, ''/t''.join(row) if num == '' '': num=0 num=num+1

No es tan compacto, pero cumple su función:

Date price factor_1 factor_2 1 2012-06-11 1600.20 1.255 1.548 2 2012-06-12 1610.02 1.258 1.554 3 2012-06-13 1618.07 1.249 1.552 4 2012-06-14 1624.40 1.253 1.556 5 2012-06-15 1626.15 1.258 1.552 6 2012-06-16 1626.15 1.263 1.558 7 2012-06-17 1626.15 1.264 1.572


Prueba esto:

import pandas as pd print(pd.read_csv("path to file"))


Puede usar el módulo csv que se encuentra en la biblioteca estándar de Python para manipular archivos CSV.

ejemplo:

import csv with open(''some.csv'', ''rb'') as f: reader = csv.reader(f) for row in reader: print row


pandas al rescate:

import pandas as pd print pd.read_csv(''value.txt'') Date price factor_1 factor_2 0 2012-06-11 1600.20 1.255 1.548 1 2012-06-12 1610.02 1.258 1.554 2 2012-06-13 1618.07 1.249 1.552 3 2012-06-14 1624.40 1.253 1.556 4 2012-06-15 1626.15 1.258 1.552 5 2012-06-16 1626.15 1.263 1.558 6 2012-06-17 1626.15 1.264 1.572

Esto devuelve DataFrame que es similar a R''s .