मैं निम्न स्वरूप के साथ कुछ पाठ फ़ाइलें है:csv फ़ाइलों से डेटा लोड करने के लिए pandas.read_csv का उपयोग करते समय dtype निर्दिष्ट करने के लिए कैसे?
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 उत्पन्न नहीं करता है। उदाहरण के लिए, पहला कॉलम int के रूप में पार्स किया गया है, यूनिकोड स्ट्र नहीं, तीसरा कॉलम यूनिकोड स्ट्र के रूप में पार्स किया गया है, int नहीं, एक लापता डेटा की वजह से ... क्या डेटाफ्रेम के प्रकार को प्रीसेट करने का कोई तरीका है, जैसे कि 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
सेटिंग जोड़ सकता है। मेरे लालच के लिए खेद है।^_^
वास्तव में, फ़ाइल पाठकों पर कुछ और काम की आवश्यकता है। यहां देखें: https://github.com/pydata/pandas/issues/926। उम्मीद है कि एक जादुई डेवलपर लकड़ी के काम से बाहर आ जाएगा और इससे मेरी मदद करेगा। –