Hướng dẫn python read csv to list of objects - python đọc csv đến danh sách các đối tượng

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]]

Hướng dẫn python read csv to list of objects - python đọc csv đến danh sách các đối tượng

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')
0

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?

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')
2

Nó đã 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')
6

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.

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')
8

Chú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
0

Chú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
2

Vì 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
3

Output:

     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

Làm thế nào để bạn đọc một tệp CSV trong danh sách trong Python?

Để làm như vậy, chúng tôi sử dụng csv.dictreader (). Như tên cho thấy, nó phân tích từng hàng như một từ điển, sử dụng hàng tiêu đề để xác định tên cột. Nếu bạn không có hàng tiêu đề, bạn có thể chỉ định đối số tên trường.csv. DictReader() . As the name suggests, it parses each row as a dictionary, using the header row to determine column names. If you don't have a header row, you may specify the fieldnames argument.

Làm cách nào để chuyển đổi tệp CSV thành danh sách trong Python?

Tệp CSV trong chế độ đọc 'r'. Chúng tôi chuyển read_obj cho CSV. Phương thức Reader () trong khi tạo một đối tượng để đọc tệp CSV. Sau đó, chúng tôi chuyển đổi từng hàng của CSV thành một tuple bằng hàm bản đồ và cuối cùng chuyển đổi toàn bộ dữ liệu thành một danh sách.convert each row of the CSV into a tuple using a map function and at last convert the whole data into a list.

Làm cách nào để đọc nhiều tệp CSV từ một thư mục trong Python?

# Đọc các tệp CSV từ danh sách df = pd.Concat (bản đồ (pd. ...
# Nhập thư viện Nhập Glob Nhập gấu trúc dưới dạng PD # Nhận danh sách tệp CSV từ đường dẫn thư mục = '/apps/data_csv_files csv_files = glob.....
df = pd.....
# Bằng cách sử dụng hàm def readcsv (args): trả về pd.....
# Sử dụng thư viện dữ liệu Nhập DASK ..

Làm cách nào để đọc một hàng từ tệp CSV trong Python?

Bước 1: Để đọc các hàng trong Python, trước tiên, chúng ta cần tải tệp CSV trong một đối tượng.Vì vậy, để tải tệp CSV vào một đối tượng sử dụng phương thức Open ().Bước 2: Tạo một đối tượng đầu đọc bằng cách chuyển đối tượng tệp được tạo ở trên cho hàm đầu đọc.Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng.