2014-12-11 15 views

Odpowiedz

17

nie wiem o read_table, ale można odczytać ten plik bezpośrednio w następujący sposób:

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) 

drukuje:

   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 
... 
... 

To samo można uzyskać w następujący sposób:

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

Wystarczy, że może to być bardziej efektywne, aby zrobić z wbudowanych funkcji. Czy mimo to wiesz o tym za pomocą wbudowanych funkcji? – zsljulius

+0

możesz po prostu użyć '' skiprows = 0'' – Jeff

+0

Dzięki za tonę. Myślę, że podstawą jest użycie wyrażenia regularnego w argumencie sep. Bo kiedy używam "\ s +", nawet z read_table, to działa. – zsljulius

Powiązane problemy