Como salvar o pandas dataframe para uso posterior (com exemplo)


Muitas vezes você pode querer salvar um DataFrame do pandas para uso posterior sem ter que reimportar os dados de um arquivo CSV.

A maneira mais fácil de fazer isso é usar to_pickle() para salvar o DataFrame como um arquivo pickle:

 df. to_pickle (" my_data.pkl ")

Isto salvará o DataFrame em seu ambiente de trabalho atual.

Você pode então usar read_pickle() para ler rapidamente o DataFrame do arquivo pickle:

 df = pd. read_pickle (" my_data.pkl ")

O exemplo a seguir mostra como usar essas funções na prática.

Exemplo: salve e carregue o Pandas DataFrame

Suponha que criemos o seguinte DataFrame do pandas que contém informações sobre vários times de basquete:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12

Podemos usar df.info() para exibir o tipo de dados de cada variável no DataFrame:

 #view DataFrame info
print ( df.info ())

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
 # Column Non-Null Count Dtype 
--- ------ -------------- ----- 
 0 team 8 non-null object
 1 point 8 non-null int64 
 2 assists 8 non-null int64 
 3 rebounds 8 non-null int64 
dtypes: int64(3), object(1)
memory usage: 292.0+ bytes
None

Podemos usar a função to_pickle() para salvar este DataFrame em um arquivo pickle com extensão .pkl :

 #save DataFrame to pickle file
df. to_pickle (" my_data.pkl ")

Nosso DataFrame agora está salvo como um arquivo pickle em nosso ambiente de trabalho atual.

Podemos então usar a função read_pickle() para ler rapidamente o DataFrame:

 #read DataFrame from pickle file
df=pd. read_pickle (" my_data.pkl ")

#view DataFrame
print (df)

team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12

Podemos usar df.info() novamente para confirmar se o tipo de dados de cada coluna é o mesmo de antes:

 #view DataFrame info
print ( df.info ())

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
 # Column Non-Null Count Dtype 
--- ------ -------------- ----- 
 0 team 8 non-null object
 1 point 8 non-null int64 
 2 assists 8 non-null int64 
 3 rebounds 8 non-null int64 
dtypes: int64(3), object(1)
memory usage: 292.0+ bytes
None

A vantagem de usar arquivos pickle é que o tipo de dados de cada coluna é preservado quando salvamos e carregamos o DataFrame.

Isso oferece uma vantagem sobre salvar e carregar arquivos CSV, pois não precisamos realizar nenhuma transformação no DataFrame, pois o arquivo pickle preserva o estado original do DataFrame.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *