मेरे पास एक कॉलम के साथ एक टैब अलग फ़ाइल है जिसे स्ट्रिंग के रूप में व्याख्या किया जाना चाहिए, लेकिन कई प्रविष्टियां पूर्णांक हैं। साथ छोटे फ़ाइलों read_csv सही ढंग से कुछ गैर पूर्णांक मूल्यों को देखने के बाद एक स्ट्रिंग के रूप स्तंभ की व्याख्या है, लेकिन बड़ी फ़ाइलों, यह does not काम के साथ:पांडा read_csv dtype अनुमान समस्या
import pandas as pd
df = pd.DataFrame({'a':['1']*100000 + ['X']*100000 + ['1']*100000, 'b':['b']*300000})
df.to_csv('test', sep='\t', index=False, na_rep='NA')
df2 = pd.read_csv('test', sep='\t')
print df2['a'].unique()
for a in df2['a'][262140:262150]:
print repr(a)
उत्पादन:
['1' 'X' 1]
'1'
'1'
'1'
'1'
1
1
1
1
1
1
दिलचस्प बात यह है 262,144 2 के एक शक्ति है तो मुझे लगता है कि अनुमानों में रूपांतरण और रूपांतरण हो रहा है लेकिन कुछ हिस्सों को छोड़ रहा है।
मैं काफी कुछ यह एक बग है, लेकिन उस के चारों ओर एक काम शायद हवाले से उपयोग करता चाहते हैं रहा हूँ, हालांकि के हवाले = csv.QUOTE_NONNUMERIC पढ़ने और लिखने के लिए समस्या हल नहीं होती जोड़ने। आदर्श रूप से मैं अपने स्ट्रिंग डेटा को उद्धृत करके इस बारे में काम कर सकता हूं और किसी भी तरह उद्धृत डेटा पर कोई अनुमान नहीं करने के लिए पांडा को मजबूर कर सकता हूं।
का उपयोग करते हुए पांडा 0.12.0
[डॉक्स] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html) ऐसा लगता है कि यह काम करेगा: 'pd.read_csv (' परीक्षण ', sep =' \ t ', कन्वर्टर्स = {' ए ': str}) '। –
@StevenRumbalski और यह पूरी तरह से करता है! आपको इसे एक उत्तर के रूप में जोड़ना चाहिए! –
@ एंडीहेडन: धन्यवाद - किया गया। –