Tengo algunos archivos de texto con el siguiente formato:¿Cómo especificar dtype cuando se usa pandas.read_csv para cargar datos de archivos csv?
000423|东阿阿胶| 300|1|0.15000| |
000425|徐工机械| 600|1|0.15000| |
000503|海虹控股| 400|1|0.15000| |
000522|白云山A| |2| | 1982.080|
000527|美的电器| 900|1|0.15000| |
000528|柳 工| 300|1|0.15000| |
cuando uso read_csv a cargarlos en trama de datos, no se genera dtype correcta para algunas columnas. Por ejemplo, la primera columna se analiza como int, no unicode str, la tercera columna se analiza como unicode str, no int, debido a que faltan datos ... ¿Hay alguna manera de preestablecer el tipo de DataFrame, al igual que numpy.genfromtxt hace?
actualizaciones: que utilizan read_csv
como ésta, que causó el problema:
data = pandas.read_csv(StringIO(etf_info), sep='|', skiprows=14, index_col=0,
skip_footer=1, names=['ticker', 'name', 'vol', 'sign',
'ratio', 'cash', 'price'], encoding='gbk')
Con el fin de resolver los problemas tanto en el tipo D y codificación, necesito utilizar unicode()
y numpy.genfromtxt
primera:
etf_info = unicode(urllib2.urlopen(etf_url).read(), 'gbk')
nd_data = np.genfromtxt(StringIO(etf_info), delimiter='|',
skiprows=14, skip_footer=1, dtype=ETF_DTYPE)
data = pandas.DataFrame(nd_data, index=nd_data['ticker'],
columns=['name', 'vol', 'sign',
'ratio', 'cash', 'price'])
Sería bueno si read_csv
puede agregar dtype
y usecols
configuraciones. Perdón por mi avaricia^_^
De hecho, se necesita algo más de trabajo en los lectores de archivos. Vea aquí: https://github.com/pydata/pandas/issues/926. Con suerte, un desarrollador mágico saldrá de la carpintería y me ayudará con esto. –