2014-12-11 5 views
8

मुझे इस फ़ाइल में pandas read_table फ़ंक्शन के साथ इस फ़ाइल में पढ़ने में कठिनाई हो रही है। http://www.ssc.wisc.edu/~bhansen/econometrics/invest.datआयात करने में कठिनाई .dat फ़ाइल

यह मेरा कोड है:

pd.read_table(f,skiprows=[0], sep="") 

कौन सा पैदावार त्रुटि:

TypeError: ord() expected a character, but string of length 0 found 

उत्तर

17

न के बारे में read_table पता है, लेकिन इस प्रकार आप सीधे इस फाइल को पढ़ सकते हैं:

import pandas as pd  

with open('/tmp/invest.dat','r') as f: 
    next(f) # skip first row 
    df = pd.DataFrame(l.rstrip().split() for l in f) 

print(df) 

प्रिंट:

इस प्रकार
   0   1    2   3 
0  17.749000 0.66007000 0.15122000 0.33150000 
1  3.9480000 0.52889000 0.11523000 0.56233000 
2  14.810000 3.7480300 0.57099000 0.12111000 
... 
... 

ही प्राप्त किया जा सकता:

df = pd.read_csv('/tmp/invest.dat', sep='\s+', header=None, skiprows=1) 
+0

बस सोचा था कि यह अधिक में निर्मित कार्यों के साथ ऐसा करने के लिए कुशल हो सकता है। क्या आप इसे अंतर्निहित कार्यों के साथ करने के लिए किसी भी तरह से जानते हैं? – zsljulius

+0

आप बस '' skiprows = 0'' – Jeff

+0

का उपयोग कर सकते हैं धन्यवाद एक टन। मुझे लगता है कि चाल सीपी तर्क में नियमित अभिव्यक्ति का उपयोग करना है। जब मैं "\ s +" का उपयोग करता हूं, यहां तक ​​कि read_table के साथ भी, यह काम करता है। – zsljulius

संबंधित मुद्दे