Computer >> Máy Tính >  >> Lập trình >> Python

Python - Sắp xếp khung dữ liệu Pandas được nhóm theo kích thước nhóm?

Để 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ự tăng dần hoặc 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 thứ tự tăng dần, hãy sử dụng như sau trong sort_values ​​() -

ascending=True

Để sắp xếp thứ tự giảm dần, hãy sử dụng như sau trong sort_values ​​() -

ascending=False

Đầu tiên, hãy tạo 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)

Tiếp theo, nhóm theo cột Reg_Price và sắp xếp theo thứ tự tăng dần -

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

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"Sorted in Descending order...\n";
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=False))

# group according to Reg_Price column and sort in ascending order
print"Sorted in Ascending order...\n";
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=True))

Đầu ra

Điều này sẽ tạo ra kết quả 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
Sorted in Ascending order...

Reg_Price
1400    1
1700    1
900     2
1000    2
dtype: int64