Biblioteka Pandas umożliwia używanie zewnętrznej pamięci, takiej jak pamięć wirtualna lub dysk twardy, do przechowywania danych podczas przetwarzania. Jest to szczególnie przydatne, gdy mamy do czynienia z dużymi plikami, które są zbyt duże, aby zmieścić się w pamięci RAM. Dzięki temu możemy przetwarzać pliki o dowolnym rozmiarze, bez obawy o brak pamięci.
Pandas udostępnia kilka narzędzi do używania zewnętrznej pamięci, takich jak:
pd.read_csv()
: ta metoda pozwala na odczyt pliku CSV do DataFrame’u z opcjąchunksize
, która pozwala na określenie, ile danych ma być wczytanych do pamięci w jednym kawałku. Możemy wtedy iterować przez kawałki danych i wykonywać różne operacje, takie jak filtrowanie czy grupowanie, a następnie zapisać wynik na dysku twardym lub w innej formie. Przykład:
import pandas as pd
# wczytanie dużego pliku CSV z użyciem chunksize
chunksize = 100000
for chunk in pd.read_csv('big_file.csv', chunksize=chunksize):
# wykonaj operacje na danych
processed_chunk = chunk[chunk['column1'] > 0]
# zapisz wynik na dysku
processed_chunk.to_csv('processed_data.csv', mode='a', index=False)
2.pd.read_sql()
: ta metoda pozwala na odczyt danych z bazy danych do DataFrame’u za pomocą zapytania SQL. Możemy wtedy wykorzystać klauzulę LIMIT
w zapytaniu, aby ograniczyć liczbę wczytanych danych w jednym kawałku. Przykład:
import pandas as pd
import mysql.connector
# połączenie z bazą danych
conn = mysql.connector.connect(user='user', password='password', host='host', database='database')
# wczytanie danych z bazy danych z użyciem LIMIT
df = pd.read_sql('SELECT * FROM table LIMIT 100000', con=conn)
# wykonaj operacje na danych
processed_df = df[df['column1'] > 0]
# zapisz wynik na dysku
processed_df.to_csv('processed_data.csv', index=False)
# zamknij połączenie z bazą danych
conn.close()
Używanie zewnętrznej pamięci jest bardzo przydatnym narzędziem w przetwarzaniu dużych zbiorów danych w Pandas i pozwala na łatwe i efektywne przetwarzanie danych, nawet gdy pamięć RAM jest ograniczona.