English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operazioni di IO di Pandas

Esempi di operazioni di IO di Pandas

Le due principali funzioni per leggere file di testo sono read_csv() e read_table(). Entrambi utilizzano lo stesso codice di parsing per convertire i dati tabellari in oggetti DataFrame in modo intelligente:

 pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer',
 names=None, index_col=None, usecols=None
 pandas.read_csv(filepath_or_buffer, sep='\t', delimiter=None, header='infer',
 names=None, index_col=None, usecols=None

Salva questo dati come temp.csv e lavora su di essi.

 S.No,Nome,Età,Città,Stipendio
 1,Tom,28,Toronto,20000
 2,Lee,32,HongKong,3000
 3,Steven,43,Bay Area,8300
 4,Ram,38,Hyderabad,3900

read.csv

read.csv legge i dati dal file csv e crea un oggetto DataFrame.

 import pandas as pd
 df=pd.read_csv("temp.csv")
 print df

I risultati dell'esecuzione sono i seguenti:

S.No Nome Età  Città  Stipendio
0     1      Tom    28    Toronto    20000
1     2      Lee    32   HongKong     3000
2     3   Steven    43   Bay Area     8300
3     4      Ram    38  Hyderabad     3900

Indice personalizzato

Questo specifica una colonna nel file csv per utilizzare index_col per definire l'indice.

 import pandas as pd
 df=pd.read_csv("temp.csv",index_col=['S.No'])
 print df

I risultati dell'esecuzione sono i seguenti:

S.No Nome Età  Città  Stipendio
1       Tom    28    Toronto    20000
2       Lee    32   HongKong     3000
3                   Steven         43               Bay Area                   8300
4                   Ram          38           Hyderabad                   3900

Convertitore

Il dtype delle colonne può essere trasmesso come dict.

 import pandas as pd
 df = pd.read_csv("temp.csv", dtype={'Salary': np.float64})
 print df.dtypes

I risultati dell'esecuzione sono i seguenti:

S.No                   int64
Name                   object
Age                   int64
City                   object
Salary           float64
dtype:                   object

Di default, il dtype della colonna Salary è int, ma viene visualizzato come float perché abbiamo chiarito di convertire il tipo. Pertanto, i dati sembrano float.

Di conseguenza, i dati sembrano float -

   S.No         Name           Age                   City           Salary
0         1                 Tom         28                   Toronto                   20000.0
1         2                 Lee         32               HongKong                   3000.0
2         3         Steven         43               Bay Area                   8300.0
3         4                 Ram         38           Hyderabad                   3900.0

Nome intestazione

L'uso del parametro names per specificare i nomi delle intestazioni.

 import pandas as pd
  
 df=pd.read_csv("temp.csv", names=['a', 'b', 'c','d','e'])
 print df

I risultati dell'esecuzione sono i seguenti:

   a        b    c           d        e
0               S.No                   Name           Age                           City           Salary
1                 1                 Tom         28                   Toronto                   20000
2                 2                 Lee         32               HongKong                   3000
3                 3         Steven         43               Bay Area                   8300
4                 4                 Ram         38           Hyderabad                   3900

Si prega di notare che il nome dell'intestazione è seguito da un nome personalizzato, ma l'intestazione nel file non è stata ancora rimossa. Ora, la rimuoviamo utilizzando il parametro header.

Sebbene il titolo non sia nella prima riga, viene trasmesso il numero di riga al titolo. Questo salta le righe precedenti.

 import pandas as pd 
 df=pd.read_csv("temp.csv",names=['a','b','c','d','e'],header=0)
 print df

I risultati dell'esecuzione sono i seguenti:

  a        b    c           d        e
0  S.No     Name   Age       City   Salary
1     1      Tom   28     Toronto    20000
2     2      Lee   32    HongKong     3000
3     3   Steven   43    Bay Area     8300
4     4      Ram   38   Hyderabad     3900

skiprows

skiprows salta il numero di righe specificato.

 import pandas as pd
 df=pd.read_csv("temp.csv", skiprows=2)
 print df

I risultati dell'esecuzione sono i seguenti:

    2      Lee   32    HongKong   3000
0   3   Steven   43    Bay Area   8300
1   4      Ram   38   Hyderabad   3900