Python csv sắp xếp theo hàng

Ví dụ sử dụng

>>> from csvsort import csvsort
>>> # sort this CSV on the 5th and 3rd columns (columns are 0 indexed)
>>> csvsort('test1.csv', [4,2])
>>> # sort this CSV with no header on 4th column and save results to separate file
>>> csvsort('test2.csv', [3], output_filename='test3.csv', has_header=False)
>>> # sort this TSV on the first column and use a maximum of 10MB per split
>>> csvsort('test3.tsv', [0], max_size=10, delimiter='\t')
>>> # sort this CSV on the first column and force quotes around every field (default is csv.QUOTE_MINIMAL)
>>> import csv
>>> csvsort('test4.csv', [0], quoting=csv.QUOTE_ALL)

Python cho phép bạn dễ dàng làm việc với các tệp, phân tích và thao tác dữ liệu. Nhiều khi bạn có thể cần sắp xếp nội dung của tệp CSV trong Python, vì chúng thường được sử dụng để truyền dữ liệu trong các tổ chức. Chúng tôi có thể sắp xếp tệp CSV trong python bằng thư viện gấu trúc mạnh mẽ hoặc thư viện csv thông thường. Trong bài viết này, chúng ta sẽ xem xét cách sắp xếp tệp CSV trong python


Cách sắp xếp tệp CSV bằng Python

Giả sử bạn có tệp CSV sau /home/ubuntu/data. csv

ID, Name, Age
3, John, 43
1, Jim,56
2, Jane,28

Bây giờ chúng ta sẽ xem xét các cách khác nhau để sắp xếp tệp này


1. Sử dụng sort_values()

Thư viện pandas cung cấp hàm sort_values() để dễ dàng sắp xếp các tệp CSV. Đây là mã để sắp xếp tệp CSV của chúng tôi

# importing pandas package
import pandas as pd
  
# assign dataset
data = pd.read_csv("/home/ubuntu/data.csv")                                       

# sort data frame
data.sort_values(["Age"], axis=0, ascending=[False], inplace=True)
  
# displaying sorted data frame
print("\nAfter sorting:")
print(data)

Trong đoạn mã trên, chúng tôi nhập gói gấu trúc và sử dụng chức năng read_csv của nó để đọc tệp csv vào tập dữ liệu. Sau đó, chúng tôi sử dụng hàm sort_values ​​để sắp xếp nó dựa trên cột “Tuổi”, theo thứ tự giảm dần. Cuối cùng, chúng tôi hiển thị kết quả

After sorting:
ID, Name, Age
1, Jim,56
3, John, 43
2, Jane,28

Chúng ta hãy xem xét chức năng sort_values ​​chi tiết hơn. Đối số đầu tiên của nó là tên cột. Đối số tiếp theo là trường trục – 0 nghĩa là sắp xếp theo hàng và 1 nghĩa là sắp xếp theo cột. Tiếp theo, là bạn muốn sắp xếp tăng dần hay giảm dần. Nếu nó là true, thì các giá trị sẽ được sắp xếp theo thứ tự tăng dần. Nếu nó sai, thì chúng sẽ được sắp xếp theo thứ tự giảm dần

Nếu bạn muốn sắp xếp dựa trên nhiều cột, bạn có thể đề cập sau đó dưới dạng danh sách trong đối số thứ nhất. Trên thực tế, bạn thậm chí có thể chỉ định thứ tự sắp xếp của từng cột dưới dạng danh sách. Dưới đây là một ví dụ để sắp xếp dữ liệu theo Tên, Tuổi. Chúng tôi sẽ sắp xếp Tên theo thứ tự Tăng dần trong khi Tuổi theo thứ tự giảm dần

data.sort_values(["Name","Age"], axis=0, ascending=[True,False], inplace=True)

Đây là mã đầy đủ

# importing pandas package
import pandas as pd
  
# assign dataset
data = pd.read_csv("/home/ubuntu/data.csv")
                                           
# sort data frame
data.sort_values(["Name","Age"], axis=0, ascending=[True,False], inplace=True)
  
# displaying sorted data frame
print("\nAfter sorting:")
print(data)

Đây là đầu ra của mã trên

ID, Name, Age
2, Jane,28
1, Jim,56
3, John, 43

Trong các trường hợp trên, chúng tôi đã giả định rằng dữ liệu của chúng tôi có hàng đầu tiên là tiêu đề. Nếu dữ liệu của bạn không có tiêu đề thì bạn có thể giới thiệu các cột của mình bằng cách sử dụng chỉ mục – 0 cho cột đầu tiên, 1 cho cột thứ hai, v.v. Đây là lệnh sắp xếp dữ liệu theo cột 1 và cột 3

data.sort_values([data.columns[0],data.columns[2]], axis=0, ascending=[True,False], inplace=True)


2. Sử dụng sắp xếp()

Bạn cũng có thể sử dụng sorted() trong thư viện csv nhưng nó cho phép bạn chỉ sắp xếp một cột tại một thời điểm

________số 8_______

Trong đoạn mã trên, trước tiên chúng tôi nhập các mô-đun cần thiết. Sau đó, chúng tôi tải tệp CSV bằng csv. chức năng đọc (). Sau đó, chúng tôi sắp xếp dữ liệu đã tải dựa trên cột có chỉ số 2, được tham chiếu bằng toán tử. vật phẩm(2). Nó sẽ sắp xếp dữ liệu theo cột 'Tuổi' theo thứ tự tăng dần

Nếu bạn muốn sắp xếp dữ liệu theo thứ tự giảm dần thì chỉ cần thêm reverse=True vào hàm sorted như hình bên dưới

data = sorted(data, key=operator.itemgetter(2), reverse=True) 

Trong bài viết này, chúng ta đã xem xét cách sắp xếp tệp CSV bằng cách sử dụng sort_values ​​trong thư viện pandas và hàm sorted() trong gói csv. Cách được đề xuất để sắp xếp dữ liệu CSV là sử dụng hàm sort_values ​​trong gói gấu trúc

Để sắp xếp CSV theo nhiều cột, hãy sử dụng phương thức sort_values(). Sắp xếp theo nhiều cột có nghĩa là nếu một trong các cột có giá trị lặp lại, thì thứ tự sắp xếp sẽ phụ thuộc vào cột thứ 2 được đề cập trong phương thức sort_values()

Đầu tiên, chúng ta hãy đọc tệp CSV đầu vào “SalesRecords. csv” −

dataFrame = pd.read_csv("C:\Users\amit_\Desktop\SalesRecords.csv")

Bây giờ chúng ta hãy sắp xếp theo nhiều cột i. e. “Reg_Price” và “Xe hơi” −

dataFrame.sort_values(["Reg_Price","Car"],axis=0, ascending=True,inplace=True,na_position='first')

Thí dụ

Sau đây là mã -

import pandas as pd

# DataFrame to read our input CS file
dataFrame = pd.read_csv("C:\Users\amit_\Desktop\SalesRecords.csv")
print("\nInput CSV file = \n", dataFrame)

# sorting according to multiple columns
dataFrame.sort_values(["Reg_Price","Car"],axis=0, ascending=True,inplace=True,na_position='first')

print("\nSorted CSV file (according to multiple columns) = \n", dataFrame)

đầu ra

Điều này sẽ tạo ra đầu ra sau -

Input CSV file =
           Car   Date_of_Purchase   Reg_Price
0          BMW         10/10/2020        1000
1        Lexus         10/12/2020         750
2         Audi         10/17/2020         750
3       Jaguar         10/16/2020        1500
4      Mustang         10/19/2020        1100
5  Lamborghini         10/22/2020        1000

Sorted CSV file (according to multiple columns) =
           Car   Date_of_Purchase   Reg_Price
2         Audi         10/17/2020         750
1        Lexus         10/12/2020         750
0          BMW         10/10/2020        1000
5  Lamborghini         10/22/2020        1000
4      Mustang         10/19/2020        1100
3       Jaguar         10/16/2020        1500

Python csv sắp xếp theo hàng


Python csv sắp xếp theo hàng