Python - przetwarzanie danych CSV

Odczytywanie danych z CSV (wartości oddzielone przecinkami) jest podstawową koniecznością w nauce o danych. Często otrzymujemy dane z różnych źródeł, które możemy wyeksportować do formatu CSV, aby mogły być wykorzystane przez inne systemy. Biblioteka Panadas zapewnia funkcje, za pomocą których możemy odczytać plik CSV w całości, jak również w częściach tylko dla wybranej grupy kolumn i wierszy.

Wprowadź jako plik CSV

Plik csv to plik tekstowy, w którym wartości w kolumnach są oddzielone przecinkiem. Rozważmy następujące dane obecne w pliku o nazwieinput.csv.

Możesz utworzyć ten plik za pomocą Notatnika Windows, kopiując i wklejając te dane. Zapisz plik jakoinput.csv używając opcji zapisz jako wszystkie pliki (*. *) w notatniku.

id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Tusar,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
5,Gary,843.25,2015-03-27,Finance
6,Rasmi,578,2013-05-21,IT
7,Pranab,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance

Czytanie pliku CSV

Plik read_csvFunkcja biblioteki pandas służy do wczytywania zawartości pliku CSV do środowiska Pythona jako pandy DataFrame. Funkcja może odczytać pliki z systemu operacyjnego, używając odpowiedniej ścieżki do pliku.

import pandas as pd
data = pd.read_csv('path/input.csv')
print (data)

Kiedy wykonujemy powyższy kod, daje on następujący wynik. Zwróć uwagę, jak funkcja utworzyła dodatkową kolumnę zaczynającą się od zera jako indeksu.

id    name  salary  start_date        dept
0   1    Rick  623.30  2012-01-01          IT
1   2     Dan  515.20  2013-09-23  Operations
2   3   Tusar  611.00  2014-11-15          IT
3   4    Ryan  729.00  2014-05-11          HR
4   5    Gary  843.25  2015-03-27     Finance
5   6   Rasmi  578.00  2013-05-21          IT
6   7  Pranab  632.80  2013-07-30  Operations
7   8    Guru  722.50  2014-06-17     Finance

Czytanie określonych wierszy

Plik read_csvfunkcja biblioteki pandas może być również używana do odczytywania określonych wierszy dla danej kolumny. Wynik z funkcji read_csv wycinamy za pomocą kodu pokazanego poniżej dla pierwszych 5 wierszy kolumny o nazwie wynagrodzenie.

import pandas as pd
data = pd.read_csv('path/input.csv')

# Slice the result for first 5 rows
print (data[0:5]['salary'])

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

0    623.30
1    515.20
2    611.00
3    729.00
4    843.25
Name: salary, dtype: float64

Czytanie określonych kolumn

Plik read_csvFunkcja biblioteki pandas może być również używana do odczytywania określonych kolumn. Korzystamy z wieloosiowej metody indeksowania o nazwie.loc()w tym celu. Decydujemy się wyświetlić kolumnę wynagrodzenia i nazwiska we wszystkich wierszach.

import pandas as pd
data = pd.read_csv('path/input.csv')

# Use the multi-axes indexing funtion
print (data.loc[:,['salary','name']])

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

salary    name
0  623.30    Rick
1  515.20     Dan
2  611.00   Tusar
3  729.00    Ryan
4  843.25    Gary
5  578.00   Rasmi
6  632.80  Pranab
7  722.50    Guru

Czytanie określonych kolumn i wierszy

Plik read_csvFunkcja biblioteki pand może być również używana do odczytywania określonych kolumn i określonych wierszy. Korzystamy z wieloosiowej metody indeksowania o nazwie.loc()w tym celu. W niektórych wierszach wybieramy wyświetlanie kolumny wynagrodzenia i nazwiska.

import pandas as pd
data = pd.read_csv('path/input.csv')

# Use the multi-axes indexing funtion
print (data.loc[[1,3,5],['salary','name']])

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

salary   name
1   515.2    Dan
3   729.0   Ryan
5   578.0  Rasmi

Odczytywanie określonych kolumn dla zakresu wierszy

Plik read_csvFunkcja biblioteki pandas może być również używana do odczytywania określonych kolumn i zakresu wierszy. Korzystamy z wieloosiowej metody indeksowania o nazwie.loc()w tym celu. W niektórych wierszach wybieramy wyświetlanie kolumny wynagrodzenia i nazwiska.

import pandas as pd
data = pd.read_csv('path/input.csv')

# Use the multi-axes indexing funtion
print (data.loc[2:6,['salary','name']])

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

salary    name
2  611.00   Tusar
3  729.00    Ryan
4  843.25    Gary
5  578.00   Rasmi
6  632.80  Pranab