次の形式のテキストファイルがいくつかあります。
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| |
read_csvを使用してそれらをDataFrameにロードすると、一部の列に対して正しいdtypeが生成されません。たとえば、最初の列はユニコードstrではなくintとして解析され、3番目の列は1つのデータが欠落しているため、intではなくユニコードstrとして解析されます...データフレームの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')
dtypeとエンコーディングの両方の問題を解決するには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'])
と設定read_csv
を追加できればいいですね。欲張りでごめんなさい。^ _ ^dtype
usecols