Pandas khá giỏi trong việc xử lý dữ liệu. Đây là một ví dụ cách sử dụng nó:
import pandas as pd
# Read the CSV into a pandas data frame [df]
# With a df you can do many things
# most important: visualize data with Seaborn
df = pd.read_csv['filename.csv', delimiter=',']
# Or export it in many ways, e.g. a list of tuples
tuples = [tuple[x] for x in df.values]
# or export it as a list of dicts
dicts = df.to_dict[].values[]
Một lợi thế lớn là gấu trúc tự động giao dịch với các hàng tiêu đề.
Nếu bạn chưa nghe nói về Seaborn, tôi khuyên bạn nên xem nó.
Xem thêm: Làm cách nào để đọc và viết các tệp CSV bằng Python?
Gandas #2
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
Nội dung của DF là:
country population population_time EUR
0 Germany 82521653.0 2016-12-01 True
1 France 66991000.0 2017-01-01 True
2 Indonesia 255461700.0 2017-01-01 False
3 Ireland 4761865.0 NaT True
4 Spain 46549045.0 2017-06-01 True
5 Vatican NaN NaT True
Nội dung của dicts là
[{'country': 'Germany', 'population': 82521653.0, 'population_time': Timestamp['2016-12-01 00:00:00'], 'EUR': True},
{'country': 'France', 'population': 66991000.0, 'population_time': Timestamp['2017-01-01 00:00:00'], 'EUR': True},
{'country': 'Indonesia', 'population': 255461700.0, 'population_time': Timestamp['2017-01-01 00:00:00'], 'EUR': False},
{'country': 'Ireland', 'population': 4761865.0, 'population_time': NaT, 'EUR': True},
{'country': 'Spain', 'population': 46549045.0, 'population_time': Timestamp['2017-06-01 00:00:00'], 'EUR': True},
{'country': 'Vatican', 'population': nan, 'population_time': NaT, 'EUR': True}]
Gandas #3
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
lists = [[row[col] for col in df.columns] for row in df.to_dict['records']]
Nội dung của
country population population_time EUR
0 Germany 82521653.0 2016-12-01 True
1 France 66991000.0 2017-01-01 True
2 Indonesia 255461700.0 2017-01-01 False
3 Ireland 4761865.0 NaT True
4 Spain 46549045.0 2017-06-01 True
5 Vatican NaN NaT True
5 là:[['Germany', 82521653.0, Timestamp['2016-12-01 00:00:00'], True],
['France', 66991000.0, Timestamp['2017-01-01 00:00:00'], True],
['Indonesia', 255461700.0, Timestamp['2017-01-01 00:00:00'], False],
['Ireland', 4761865.0, NaT, True],
['Spain', 46549045.0, Timestamp['2017-06-01 00:00:00'], True],
['Vatican', nan, NaT, True]]
Trong bài viết này, chúng tôi sẽ thảo luận về cách nhập CSV vào danh sách. Danh sách này có thể là một danh sách các danh sách, danh sách các bộ dữ liệu hoặc danh sách từ điển. Chúng tôi cũng sẽ sử dụng mô -đun Pandas và các kịch bản bao gồm để nhập nội dung CSV để liệt kê có hoặc không có tiêu đề.
Giả sử chúng ta có một tệp CSV ‘sinh viên.csv và nội dung của nó là,
Id,Name,Course,City,Session 21,Mark,Python,London,Morning 22,John,Python,Tokyo,Evening 23,Sam,Python,Paris,Morning 32,Shaun,Java,Tokyo,Morning
Bây giờ, hãy để xem cách nhập nội dung của tệp CSV này vào danh sách.
Có nhiều cách khác nhau để tải nội dung CSV vào danh sách danh sách,
Nhập CSV vào danh sách danh sách bằng CSV.Reader
Python có mô-đun CSV tích hợp, cung cấp lớp đọc để đọc nội dung của tệp CSV. Hãy để sử dụng điều đó,
from csv import reader # read csv file as a list of lists with open['students.csv', 'r'] as read_obj: # pass the file object to reader[] to get the reader object csv_reader = reader[read_obj] # Pass reader object to list[] to get a list of lists list_of_rows = list[csv_reader] print[list_of_rows]
Đầu ra:
[['Id', 'Name', 'Course', 'City', 'Session'], ['21', 'Mark', 'Python', 'London', 'Morning'], ['22', 'John', 'Python', 'Tokyo', 'Evening'], ['23', 'Sam', 'Python', 'Paris', 'Morning'], ['32', 'Shaun', 'Java', 'Tokyo', 'Morning']]
Chúng tôi có một danh sách các từ điển, trong đó mỗi từ điển trong danh sách đại diện cho một hàng CSV và chứa các cặp tên cột & giá trị cột cho hàng đó, dưới dạng các cặp khóa / giá trị.
Nó hoạt động như thế nào?
Chúng tôi đã mở tệp CSV ở chế độ đọc và sau đó chuyển đối tượng tệp cho hàm csv.dictreader []. Nó đã trả lại một trình lặp Dict_reader, chúng ta có thể lặp lại trên tất cả các hàng của CSV và tìm nạp từng nội dung hàng dưới dạng từ điển. Nhưng chúng tôi đã chuyển trình lặp này vào hàm danh sách [], đã trả lại một danh sách các từ điển, tức là các hàng.
Một điểm quan trọng là, bất cứ khi nào chúng tôi chuyển một mục có thể lặp lại cho một hàm tạo danh sách, tức là danh sách [], sau đó nó lặp đi lặp lại trên tất cả các yếu tố của cấu trúc dữ liệu mà đối tượng lặp này đang trỏ và lưu trữ chúng vào danh sách. Cuối cùng trả về danh sách đó.
Ví dụ hoàn chỉnh như sau,
Làm thế nào để bạn đọc một tệp CSV trong danh sách trong Python?
# select the value from csv at row number 3 and column number 2 row_number = 3 col_number = 2 value = list_of_rows[row_number - 1][col_number - 1] print['Value in cell at 3rd row and 2nd column : ', value]
Đầu ra:
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
0Chúng tôi có một danh sách các từ điển, trong đó mỗi từ điển trong danh sách đại diện cho một hàng CSV và chứa các cặp tên cột & giá trị cột cho hàng đó, dưới dạng các cặp khóa / giá trị.
Nó hoạt động như thế nào?
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
1Đầu ra:
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
2Nó đã tạo một danh sách các danh sách chứa tất cả các hàng CSV ngoại trừ tiêu đề và in danh sách đó.
Nó hoạt động như thế nào?
Chúng tôi đã tải CSV vào một hàm DataFrame bằng cách sử dụng hàm read_csv []. Khi dataFrame.values trả về biểu diễn 2D numpy của tất cả các hàng của DataFrame không bao gồm tiêu đề. Vì vậy, chúng tôi đã lặp lại trên tất cả các hàng của mảng 2D này bằng cách sử dụng danh sách hiểu và tạo một danh sách các danh sách. Trong đó mỗi danh sách đại diện cho một hàng CSV và mỗi mục trong danh sách đại diện cho một ô / cột trong hàng đó.
Sử dụng gấu trúc để đọc CSV vào danh sách các danh sách có tiêu đề
Trong ví dụ trên, tiêu đề của CSV đã bị bỏ qua theo mặc định. Vì vậy, nếu bạn cũng muốn tiêu đề trong danh sách danh sách này, thì chúng ta cần chèn nó vào danh sách riêng biệt trong phần cuối của ví dụ trên, như thế này,
then we need to insert it in list separately in the end of the above example, like this,
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
3Đầu ra:
[['Id', 'Name', 'Course', 'City', 'Session'], ['21', 'Mark', 'Python', 'London', 'Morning'], ['22', 'John', 'Python', 'Tokyo', 'Evening'], ['23', 'Sam', 'Python', 'Paris', 'Morning'], ['32', 'Shaun', 'Java', 'Tokyo', 'Morning']]
Nó đã tạo ra một danh sách các danh sách chứa tất cả các hàng CSV bao gồm tiêu đề và in danh sách đó.
Nó hoạt động như thế nào?
Chúng tôi đã tải CSV vào một hàm DataFrame bằng cách sử dụng hàm read_csv []. Khi dataFrame.values trả về biểu diễn 2D numpy của tất cả các hàng của DataFrame không bao gồm tiêu đề. Vì vậy, chúng tôi đã lặp lại trên tất cả các hàng của mảng 2D này bằng cách sử dụng danh sách hiểu và tạo một danh sách các danh sách. DataFrame.Columns đưa ra tên cột, vì vậy chúng tôi đã chuyển đổi nó thành một danh sách và được chèn ở đầu danh sách hàng.
Đọc CSV vào danh sách các bộ dữ
Hãy để tải tất cả các nội dung của sinh viên.csv vào một danh sách các bộ dữ liệu, trong đó mỗi bộ trong danh sách đại diện cho một hàng và mỗi giá trị trong bộ tuple biểu thị giá trị ô / cột cho hàng cụ thể đó.
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
5Đầu ra
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
6Nó hoạt động như thế nào?
Chúng tôi đã tải CSV vào một hàm DataFrame bằng cách sử dụng hàm read_csv []. Khi dataFrame.values trả về biểu diễn 2D numpy của tất cả các hàng của DataFrame không bao gồm tiêu đề. Vì vậy, chúng tôi đã lặp lại trên tất cả các hàng của mảng 2D này bằng cách sử dụng danh sách hiểu và tạo một danh sách các danh sách. DataFrame.Columns đưa ra tên cột, vì vậy chúng tôi đã chuyển đổi nó thành một danh sách và được chèn ở đầu danh sách hàng.
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
7Đọc CSV vào danh sách các bộ dữ
Hãy để tải tất cả các nội dung của sinh viên.csv vào một danh sách các bộ dữ liệu, trong đó mỗi bộ trong danh sách đại diện cho một hàng và mỗi giá trị trong bộ tuple biểu thị giá trị ô / cột cho hàng cụ thể đó.
Đầu ra
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
8Chúng tôi đã mở tệp CSV ở chế độ đọc và sau đó chuyển đối tượng tệp cho hàm csv.Reader []. Nó đã trả về một trình lặp CSV_Reader, chúng tôi có thể lặp lại trên tất cả các hàng của CSV. Nhưng chúng tôi đã chuyển nó vào hàm bản đồ [] như một đối số cùng với hàm tuple [] là cuộc gọi lại, tức là,
Hàm Map [] Chấp nhận một danh sách chức năng & đầu vào làm đối số. Đối với mỗi mục trong danh sách đầu vào, nó áp dụng chức năng và lưu trữ kết quả trong một đối tượng được ánh xạ.
import pandas as pd
# Get data - reading the CSV file
import mpu.pd
df = mpu.pd.example_df[]
# Convert
dicts = df.to_dict['records']
9Đầu ra
country population population_time EUR
0 Germany 82521653.0 2016-12-01 True
1 France 66991000.0 2017-01-01 True
2 Indonesia 255461700.0 2017-01-01 False
3 Ireland 4761865.0 NaT True
4 Spain 46549045.0 2017-06-01 True
5 Vatican NaN NaT True
0Chúng tôi đã mở tệp CSV ở chế độ đọc và sau đó chuyển đối tượng tệp cho hàm csv.Reader []. Nó đã trả về một trình lặp CSV_Reader, chúng tôi có thể lặp lại trên tất cả các hàng của CSV. Nhưng chúng tôi đã chuyển nó vào hàm bản đồ [] như một đối số cùng với hàm tuple [] là cuộc gọi lại, tức là,
Finally list comprehension returned a list of tuples, where each tuple in the list represents a row and each value in the tuple represents a cell / column value for that particular row.
Hàm Map [] Chấp nhận một danh sách chức năng & đầu vào làm đối số. Đối với mỗi mục trong danh sách đầu vào, nó áp dụng chức năng và lưu trữ kết quả trong một đối tượng được ánh xạ.
country population population_time EUR
0 Germany 82521653.0 2016-12-01 True
1 France 66991000.0 2017-01-01 True
2 Indonesia 255461700.0 2017-01-01 False
3 Ireland 4761865.0 NaT True
4 Spain 46549045.0 2017-06-01 True
5 Vatican NaN NaT True
1Đầu ra:
country population population_time EUR
0 Germany 82521653.0 2016-12-01 True
1 France 66991000.0 2017-01-01 True
2 Indonesia 255461700.0 2017-01-01 False
3 Ireland 4761865.0 NaT True
4 Spain 46549045.0 2017-06-01 True
5 Vatican NaN NaT True
2Vì vậy, trong chức năng bản đồ trường hợp này [], đã lặp lại trên tất cả các hàng của CSV bằng cách sử dụng iterator csv_reader và áp dụng chức năng tuple [] cho mỗi mục. Sau đó, lưu trữ bộ tuple đã trả lại, tức là một tuple cho một hàng, đến đối tượng được ánh xạ. Vì vậy, bây giờ bản đồ của chúng tôi_object của chúng tôi chứa các bộ dữ liệu, tức là một tuple cho mỗi hàng.
Nó hoạt động như thế nào?
Chúng tôi đã tải CSV vào một hàm DataFrame bằng cách sử dụng hàm read_csv []. Khi dataFrame.values trả về biểu diễn 2D numpy của tất cả các hàng của DataFrame không bao gồm tiêu đề. Vì vậy, chúng tôi đã lặp lại trên tất cả các hàng của mảng 2D này bằng cách sử dụng danh sách hiểu và tạo một danh sách các danh sách. DataFrame.Columns đưa ra tên cột, vì vậy chúng tôi đã chuyển đổi nó thành một danh sách và được chèn ở đầu danh sách hàng.
Đọc CSV vào danh sách các bộ dữ
& stores them into a list. In the end returns that list.
Hãy để tải tất cả các nội dung của sinh viên.csv vào một danh sách các bộ dữ liệu, trong đó mỗi bộ trong danh sách đại diện cho một hàng và mỗi giá trị trong bộ tuple biểu thị giá trị ô / cột cho hàng cụ thể đó.
country population population_time EUR
0 Germany 82521653.0 2016-12-01 True
1 France 66991000.0 2017-01-01 True
2 Indonesia 255461700.0 2017-01-01 False
3 Ireland 4761865.0 NaT True
4 Spain 46549045.0 2017-06-01 True
5 Vatican NaN NaT True
3Output:
country population population_time EUR
0 Germany 82521653.0 2016-12-01 True
1 France 66991000.0 2017-01-01 True
2 Indonesia 255461700.0 2017-01-01 False
3 Ireland 4761865.0 NaT True
4 Spain 46549045.0 2017-06-01 True
5 Vatican NaN NaT True
4