Personalizarea importului cu pandas
Pachetul pandas este excelent pentru a gestiona multe dintre problemele pe care le vei întâlni când imporți date ca om de știință a datelor, cum ar fi comentariile din fișierele flat, liniile goale și valorile lipsă (NA sau NaN). Pentru a încheia acest capitol, vei importa o copie coruptă a setului de date Titanic, titanic_corrupt.txt, care conține comentarii după caracterul '#' și este delimitat prin tab.
Argumentele cheie pentru pd.read_csv() includ:
sepstabilește separatorul așteptat.- Poți folosi
','pentru delimitare prin virgulă. - Poți folosi
'\t'pentru delimitare prin tab.
- Poți folosi
commentprimește caracterele după care apar comentariile în fișier, indicând că orice text care începe cu aceste caractere ar trebui ignorat.na_valuesprimește o listă de șiruri care să fie identificate caNA/NaN. În mod implicit, unele valori sunt deja recunoscute caNA/NaN. Furnizarea acestui argument va adăuga valori suplimentare.
Acest exercițiu face parte din cursul
Introducere în importul datelor în Python
Instrucțiuni pentru exercițiu
- Completează argumentele funcției
pd.read_csv()pentru a importa corecttitanic_corrupt.txtfolosind pandas:sepstabilește separatorul de utilizat și funcționează la fel ca argumentuldelimiteralnp.loadtxt(). Reține că fișierul pe care îl imporți este delimitat prin tab.commentprimește caracterele după care apar comentariile în fișier — în acest caz,'#'.na_valuesprimește o listă de șiruri care să fie tratate caNA/NaN— în acest caz, șirul'Nothing'.
- Rulează restul codului pentru a afișa primele rânduri ale DataFrame-ului rezultat și a trasa histograma coloanei
'Age'a pasagerilor de pe Titanic.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
# Assign filename: file
file = 'titanic_corrupt.txt'
# Import file: data
data = pd.read_csv(file, sep='____', comment='____', na_values=[____])
# Print the head of the DataFrame
print(data.head())
# Plot 'Age' variable in a histogram
pd.DataFrame.hist(data[['Age']])
plt.xlabel('Age (years)')
plt.ylabel('count')
plt.show()