Làm thế nào để bạn sắp xếp theo nhóm trong python?

Dưới đây là một ví dụ về đọc dữ liệu từ tệp csv bằng gấu trúc, nhóm dữ liệu theo giá trị trong một cột và sắp xếp chúng theo giá trị trong cột khác nhưng trong các nhóm đó

Original Data:
+--------------+---------+------------------+
| Project Name | Student | Submission Date |
+--------------+---------+------------------+
| Gamma | Cathy | 2019-05-16 4:30 |
| Beta | Cathy | 2019-04-17 8:6 |
| Alpha | Derek | 2019-03-26 15:3 |
| Alpha | Bruce | 2019-03-21 2:30 |
| Gamma | Ezze | 2019-05-18 20:5 |
| Alpha | Ezze | 2019-04-10 5:13 |
| Beta | Ezze | 2019-04-17 5:48 |
| Alpha | Cathy | 2019-03-29 12:37 |
| Alpha | Adam | 2019-03-26 18:5 |
| Gamma | Adam | 2019-05-17 6:57 |
| Gamma | Derek | 2019-05-14 10:12 |
| Gamma | Bruce | 2019-05-16 4:49 |
| Beta | Bruce | 2019-04-16 8:59 |
| Beta | Adam | 2019-04-17 16:10 |
| Beta | Derek | 2019-04-18 21:9 |
+--------------+---------+------------------+

Mục tiêu là nhóm các hàng theo Tên dự án và sau đó sắp xếp chúng theo Ngày gửi tương ứng của chúng

Để nhóm khung dữ liệu Pandas, chúng tôi sử dụng groupby(). Để sắp xếp khung dữ liệu được nhóm theo thứ tự giảm dần, hãy sử dụng sort_values(). Phương thức size() được sử dụng để lấy kích thước khung dữ liệu

Để sắp xếp theo thứ tự giảm dần, hãy sử dụng thông tin sau trong sort_values() −

ascending=False

Lúc đầu, hãy tạo một khung dữ liệu gấu trúc -

dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'], "Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
   }
)

Tiếp theo, nhóm theo cột Reg_Price và sắp xếp theo thứ tự giảm dần −

dataFrame.groupby('Reg_Price').size().sort_values(ascending=False)

Ví dụ

Sau đây là mã

import pandas as pd

# dataframe with one of the columns as Reg_Price
dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],

      "Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
   }
)

print"DataFrame...\n",dataFrame

# group according to Reg_Price column and sort in descending order
print"\nSorted in Descending order...";
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=False))

đầu ra

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

DataFrame...
        Car Reg_Price
0       BMW      1000
1     Lexus      1400
2      Audi      1000
3  Mercedes       900
4    Jaguar      1700
5   Bentley       900

Sorted in Descending order...
Reg_Price
1000    2
900     2
1700    1
1400    1
dtype: int64

Làm thế nào để bạn sắp xếp theo nhóm trong python?


Làm thế nào để bạn sắp xếp theo nhóm trong python?

Bạn có thể sử dụng cú pháp sau để nhóm các hàng trong DataFrame của gấu trúc và sau đó sắp xếp các giá trị trong các nhóm.
df.sort_values(['var1','var2'],ascending=False).groupby('var1').head()

Ví dụ sau đây cho thấy cách sử dụng cú pháp này trong thực tế

Ví dụ. Sử dụng GroupBy và Sắp xếp trong các nhóm trong Pandas

Giả sử chúng ta có Khung dữ liệu gấu trúc sau đây hiển thị doanh số bán hàng được thực hiện tại hai địa điểm cửa hàng khác nhau

import pandas as pd

#create DataFrame
df = pd.DataFrame({'store': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
                   'sales': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print(df)

  store  sales
0     B     12
1     B     25
2     A      8
3     A     14
4     B     10
5     B     20
6     A     30
7     A     30

Chúng ta có thể sử dụng cú pháp sau để nhóm các hàng theo cột cửa hàng và sắp xếp theo thứ tự giảm dần dựa trên cột doanh số

________số 8

Lưu ý rằng chúng ta cũng có thể loại bỏ đối số ascending=False để sắp xếp các giá trị bán hàng theo thứ tự tăng dần

Pandas Groupby được sử dụng trong các trường hợp chúng ta muốn chia nhỏ dữ liệu và đặt thành các nhóm để có thể thực hiện nhiều thao tác khác nhau trên các nhóm đó như – Tổng hợp dữ liệu, Chuyển đổi thông qua một số tính toán nhóm hoặc Lọc theo các điều kiện cụ thể được áp dụng trên các nhóm

Theo những cách tương tự, chúng ta có thể thực hiện sắp xếp trong các nhóm này

ví dụ 1. Hãy lấy một ví dụ về một khung dữ liệu




df

ascending=False
0
ascending=False
1
ascending=False
2
ascending=False
3
ascending=False
4
ascending=False
5
ascending=False
4
ascending=False
5
ascending=False
8
ascending=False
5
ascending=False
8
ascending=False
02

ascending=False
03
ascending=False
04
ascending=False
3
ascending=False
06
ascending=False
5
ascending=False
08
ascending=False
5
ascending=False
10
ascending=False
5
ascending=False
12
ascending=False
13

ascending=False
14

ascending=False
15

ascending=False
16
ascending=False
2
ascending=False
18
ascending=False
19
ascending=False
20

đầu ra

Làm thế nào để bạn sắp xếp theo nhóm trong python?

Hãy chuyển tham số sắp xếp thành Sai




ascending=False
21

ascending=False
22

ascending=False
16
ascending=False
2
ascending=False
25
ascending=False
0
ascending=False
27
ascending=False
18
ascending=False
19
ascending=False
20

đầu ra

Làm thế nào để bạn sắp xếp theo nhóm trong python?

Ở đây, chúng ta thấy một khung dữ liệu với các giá trị được sắp xếp trong các nhóm

Ví dụ 2.
Bây giờ, hãy lấy một ví dụ về khung dữ liệu với độ tuổi của những người khác nhau. Sử dụng chức năng sắp xếp cùng với chức năng nhóm sẽ sắp xếp khung dữ liệu được chuyển đổi trên cơ sở các lần chuyển khóa, để tăng tốc tiềm năng.




ascending=False
31
ascending=False
0
ascending=False
33
ascending=False
34
ascending=False
35
ascending=False
36
ascending=False
5
ascending=False
38
ascending=False
5
ascending=False
40
ascending=False
5
ascending=False
42
ascending=False
43

ascending=False
44
ascending=False
45
ascending=False
5
ascending=False
36
ascending=False
5
ascending=False
49
ascending=False
5
ascending=False
40
ascending=False
52

ascending=False
53
ascending=False
54
ascending=False
35
ascending=False
56
ascending=False
5
ascending=False
58
ascending=False
5
ascending=False
40
ascending=False
5
ascending=False
56
ascending=False
43

ascending=False
44
ascending=False
45
ascending=False
5
ascending=False
40
ascending=False
5
ascending=False
49
ascending=False
5
ascending=False
51
ascending=False
52

ascending=False
14

df

ascending=False
0
ascending=False
56

df

đầu ra

Làm thế nào để bạn sắp xếp theo nhóm trong python?

Hãy nhóm khung dữ liệu trên theo tên




ascending=False
58

ascending=False
59
ascending=False
34
ascending=False
81
ascending=False
19
ascending=False
20

đầu ra

Làm thế nào để bạn sắp xếp theo nhóm trong python?

Truyền tham số sắp xếp là Sai




ascending=False
21

ascending=False
22

ascending=False
59
ascending=False
34
ascending=False
88
ascending=False
0
ascending=False
27
ascending=False
18
ascending=False
19
ascending=False
20

đầu ra

Làm thế nào để bạn sắp xếp theo nhóm trong python?

Ví dụ 3.
Hãy lấy một ví dụ khác về khung dữ liệu bao gồm tốc độ tối đa của nhiều loại ô tô và xe đạp.
Chúng tôi sẽ cố gắng sắp xếp tốc độ tối đa trong các nhóm loại phương tiện.




ascending=False
004
ascending=False
005

ascending=False
14

ascending=False
14

df

ascending=False
0
ascending=False
010
ascending=False
011
ascending=False
5
ascending=False
013
ascending=False
5
ascending=False
015
ascending=False
016

ascending=False
03
ascending=False
018
ascending=False
011
ascending=False
5
ascending=False
021
ascending=False
5
ascending=False
023
ascending=False
016

ascending=False
03
ascending=False
018
ascending=False
027
ascending=False
5
ascending=False
029
ascending=False
5
ascending=False
031
ascending=False
032

ascending=False
03
ascending=False
018
ascending=False
027
ascending=False
5
ascending=False
037
ascending=False
5
ascending=False
039
ascending=False
016

ascending=False
03
ascending=False
018
ascending=False
011
ascending=False
5
ascending=False
045
ascending=False
5
ascending=False
047
ascending=False
032

ascending=False
03
ascending=False
018
ascending=False
027
ascending=False
5
ascending=False
053
ascending=False
5
ascending=False
055
ascending=False
016

ascending=False
03
ascending=False
018
ascending=False
011
ascending=False
5
ascending=False
061
ascending=False
5
ascending=False
063
ascending=False
064

ascending=False
065
ascending=False
066
ascending=False
0
ascending=False
018
ascending=False
069
ascending=False
5
ascending=False
34
ascending=False
5
ascending=False
073
ascending=False
074

Phương thức GroupBy() hoạt động như thế nào trong Pandas?

hàm groupby() được dùng để chia dữ liệu thành các nhóm dựa trên một số tiêu chí . các đối tượng gấu trúc có thể được phân chia trên bất kỳ trục nào của chúng. Định nghĩa trừu tượng của nhóm là cung cấp ánh xạ nhãn tới tên nhóm. loại. Sắp xếp khóa nhóm.

Pandas GroupBy có giữ trật tự không?

Groupby giữ nguyên thứ tự các hàng trong mỗi nhóm .