我有一些文本文件格式如下:
000423|????| 300|1|0.15000| |
000425|????| 600|1|0.15000| |
000503|????| 400|1|0.15000| |
000522|????| |2| | 1982.080|
000527|????| 900|1|0.15000| |
000528|? ?| 300|1|0.15000| |
Run Code Online (Sandbox Code Playgroud)
当我使用read_csv将它们加载到DataFrame时,它不会为某些列生成正确的dtype.例如,第一列被解析为int,而不是unicode str,第三列被解析为unicode str,而不是int,因为缺少一个数据...有没有办法预设DataFrame的dtype,就像numpy.genfromtxt呢?
更新:我使用read_csv这样导致了问题:
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')
Run Code Online (Sandbox Code Playgroud)
为了解决这两个D型和编码的问题,我需要使用unicode()和numpy.genfromtxt第一次:
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'])
Run Code Online (Sandbox Code Playgroud)
如果read_csv可以添加dtype和usecols设置会很好.抱歉,我的贪婪.^ _ ^
| 归档时间: |
|
| 查看次数: |
4108 次 |
| 最近记录: |