2017-09-14 2 views
2

J'ai une table de données automobiles située à une URL. Les données semblent être séparées par des tabulations. Voici l'URL:Importation d'une table séparée par des tabulations à partir d'une URL pour produire une trame de données pandas avec chaque colonne correctement placée dans des colonnes séparées

auto_table = 'https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data' 

Et voici quelques lignes des données:

18.0 8 307.0  130.0  3504.  12.0 70 1 "chevrolet chevelle malibu" 
15.0 8 350.0  165.0  3693.  11.5 70 1 "buick skylark 320" 
18.0 8 318.0  150.0  3436.  11.0 70 1 "plymouth satellite" 
16.0 8 304.0  150.0  3433.  12.0 70 1 "amc rebel sst" 
17.0 8 302.0  140.0  3449.  10.5 70 1 "ford torino" 
15.0 8 429.0  198.0  4341.  10.0 70 1 "ford galaxie 500" 

J'ai essayé d'utiliser pandas.read_table (« auto_table ») pour importer les données en tant que trame de données de pandas géants . Cependant, Python importe les données en seulement 2 colonnes: la première colonne importée contient toutes ces colonnes number/float/integer, et la deuxième colonne contient correctement toutes les chaînes (les noms des automobiles).

Comment puis-je importer ces données en utilisant Python pour produire une trame de données pandas avec toutes ces données correctement séparées dans leurs propres colonnes uniques. J'ai vérifié la documentation pour pandas.read_table, which is here, mais je n'arrive pas à comprendre comment importer correctement la table.

Répondre

2

Il semble y avoir un fichier à largeur fixe, de sorte que nous pouvons utiliser pandas.read_fwf():

In [7]: df = pd.read_fwf(auto_table, header=None) 

In [8]: df 
Out[8]: 
     0 1  2  3  4  5 6 7       8 
0 18.0 8 307.0 130.0 3504.0 12.0 70 1 "chevrolet chevelle malibu" 
1 15.0 8 350.0 165.0 3693.0 11.5 70 1   "buick skylark 320" 
2 18.0 8 318.0 150.0 3436.0 11.0 70 1   "plymouth satellite" 
3 16.0 8 304.0 150.0 3433.0 12.0 70 1    "amc rebel sst" 
4 17.0 8 302.0 140.0 3449.0 10.5 70 1    "ford torino" 
5 15.0 8 429.0 198.0 4341.0 10.0 70 1   "ford galaxie 500" 
6 14.0 8 454.0 220.0 4354.0 9.0 70 1   "chevrolet impala" 
.. ... .. ... ...  ... ... .. ..       ... 
391 36.0 4 135.0 84.00 2370.0 13.0 82 1   "dodge charger 2.2" 
392 27.0 4 151.0 90.00 2950.0 17.3 82 1   "chevrolet camaro" 
393 27.0 4 140.0 86.00 2790.0 15.6 82 1   "ford mustang gl" 
394 44.0 4 97.0 52.00 2130.0 24.6 82 2     "vw pickup" 
395 32.0 4 135.0 84.00 2295.0 11.6 82 1    "dodge rampage" 
396 28.0 4 120.0 79.00 2625.0 18.6 82 1    "ford ranger" 
397 31.0 4 119.0 82.00 2720.0 19.4 82 1     "chevy s-10" 

[398 rows x 9 columns] 
+0

Cela fonctionne bien, merci! – TJE

2

Utilisez septembre

pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/\ 
auto-mpg/auto-mpg.data', sep='\s+') 

Ou

df=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/\ 
auto-mpg/auto-mpg.data', delim_whitespace=True) 
+0

C'est ce qu'il a fait. Je vous remercie! – TJE