Để 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]
Thí 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
Để chỉ định xem phương thức có phải sắp xếp DataFrame theo thứ tự tăng dần hay giảm dần của chỉ mục hay không, bạn có thể đặt đối số boolean có tên ascending
thành True hoặc False tương ứng
Khi chỉ mục được sắp xếp, các hàng tương ứng được sắp xếp lại
ví dụ 1. Sắp xếp DataFrame theo chỉ mục theo thứ tự tăng dần
Trong ví dụ này, chúng ta sẽ tạo một khung dữ liệu với một số hàng và lập chỉ mục với một mảng số. Chúng tôi sẽ sắp xếp các hàng của khung dữ liệu này để chỉ mục sẽ theo thứ tự tăng dần
Để sắp xếp chỉ mục theo thứ tự tăng dần, chúng ta gọi phương thức sort_index[] với đối số ascending=True
như trong chương trình Python sau. Hoặc bạn có thể bỏ qua tham số tăng dần, vì giá trị mặc định cho đối số ascending
là True
Chương trình Python
import pandas as pd
#create a dataframe
df_1 = pd.DataFrame[
[['Arjun', 70, 86],
['Kiku', 80, 76],
['Mama', 99, 99],
['Lini', 79, 92]],
index = [2, 1, 6, 5],
columns=['name', 'aptitude', 'cooking']]
print[df_1]
#sort dataframe by index in ascending order
df_1 = df_1.sort_index[ascending=True]
print['\nDataFrame after sorting by index\n']
print[df_1]
Chạyđầu ra
Chạy chương trình trên. Chúng tôi đã in DataFrame gốc ra bàn điều khiển, tiếp theo là DataFrame được sắp xếp
name aptitude cooking
2 Arjun 70 86
1 Kiku 80 76
6 Mama 99 99
5 Lini 79 92
DataFrame after sorting by index
name aptitude cooking
1 Kiku 80 76
2 Arjun 70 86
5 Lini 79 92
6 Mama 99 99
ví dụ 2. Sắp xếp DataFrame theo chỉ mục theo thứ tự giảm dần
Trong ví dụ này, chúng ta sẽ sắp xếp DataFrame dựa trên thứ tự giảm dần của chỉ mục. Đối với điều đó, chúng ta sẽ chuyển ascending=False
cho phương thức sort_index[]
Chương trình Python
import pandas as pd
#create a dataframe
df_1 = pd.DataFrame[
[['Arjun', 70, 86],
['Kiku', 80, 76],
['Mama', 99, 99],
['Lini', 79, 92]],
index = [2, 1, 6, 5],
columns=['name', 'aptitude', 'cooking']]
print[df_1]
#sort dataframe by index in descending order
df_1 = df_1.sort_index[ascending=False]
print['\nDataFrame after sorting by index\n']
print[df_1]
Chạyđầu ra
Chạy chương trình. Khung dữ liệu được sắp xếp có chỉ mục [6 5 5 1]
theo thứ tự giảm dần
Tóm lược
Trong hướng dẫn về Ví dụ Python này, chúng ta đã học cách sắp xếp Khung dữ liệu Pandas theo chỉ mục theo thứ tự tăng dần và giảm dần
Bạn có thể sắp xếp theo giá trị cột trong DataFrame của gấu trúc bằng phương thức sort_values[]. Để chỉ định thứ tự, bạn phải sử dụng thuộc tính boolean tăng dần; . Theo mặc định, nó được đặt thành True
Trong bài viết này, tôi sẽ giải thích cách sắp xếp DataFrame của gấu trúc theo các giá trị cột bằng cách sử dụng thứ tự tăng dần, thứ tự giảm dần, nhiều cột, đẩy NaN lên đầu tiên, đặt lại chỉ mục trên kết quả sắp xếp
1. Ví dụ nhanh về Pandas Sắp xếp theo giá trị cột
Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách sắp xếp DataFrame của gấu trúc theo giá trị cột
# Below are quick example
# Default sort
df2 = df.sort_values['Courses']
# Sort by Descending
df2 = df.sort_values['Courses', ascending=False]
# Sory by multiple columns
df2 = df.sort_values[by=['Courses','Fee']]
# Sort and ignore index
df2 = df.sort_values[by='Courses', ignore_index=True]
# Sory by putting NaN at first
df2 = df.sort_values[by=['Courses','Fee'], na_position='first']
# Sort by function
df2 = df.sort_values[by='Courses', key=lambda col: col.str.lower[]]
# Sort by heap algorithm
df2 = df.sort_values[by='Courses', kind='heap']
Hãy tạo một DataFrame với một vài hàng và cột và thực hiện các ví dụ này. Khung dữ liệu của chúng tôi chứa các tên cột
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
9,
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
0,
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
1 và
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
2
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
Sản lượng dưới sản lượng
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
2. Sắp xếp khung dữ liệu theo giá trị cột
Bằng cách sử dụng df. sort_values[] bạn có thể sắp xếp DataFrame của gấu trúc theo thứ tự tăng dần hoặc giảm dần. Khi không chỉ định thứ tự, theo mặc định, nó sẽ theo thứ tự tăng dần.
# Default sort
df2 = df.sort_values['Courses']
print[df2]
Sản lượng dưới sản lượng
Courses Fee Duration Discount
r2 Java 22000 60days 1200
r1 Spark 20000 30days 1000
r4 Spark 26000 50days 3000
r5 pandas 30000 35days 1500
r3 NaN 25000 40days 2500
Trong trường hợp bạn muốn cập nhật DataFrame hiện có, hãy sử dụng
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
3
# Default sort with inplace=True
df.sort_values['Courses', inplace=True]
print[df2]
Mang lại sản lượng tương tự như trên
3. Pandas Sắp xếp theo thứ tự giảm dần
Nếu bạn muốn sắp xếp DataFrame của gấu trúc theo thứ tự giảm dần, hãy sử dụng
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
4. Bạn cũng có thể chỉ định các thứ tự sắp xếp khác nhau cho từng nhãn
# Sort by Descending
df2 = df.sort_values['Courses', ascending=False]
print[df2]
Sản lượng dưới sản lượng
Courses Fee Duration Discount
r5 pandas 30000 35days 1500
r1 Spark 20000 30days 1000
r4 Spark 26000 50days 3000
r2 Java 22000 60days 1200
r3 NaN 25000 40days 2500
4. Sắp xếp theo nhiều cột
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
5 cũng hỗ trợ sắp xếp trên nhiều cột cùng một lúc, chuyển danh sách tên cột cho by param để sắp xếp DataFrame theo nhiều cột
# Sory by multiple columns
df2 = df.sort_values[by=['Courses','Fee']]
print[df2]
Sản lượng dưới sản lượng
Courses Fee Duration Discount
r2 Java 22000 60days 1200
r1 Spark 20000 30days 1000
r4 Spark 26000 50days 3000
r5 pandas 30000 35days 1500
r3 NaN 25000 40days 2500
5. Đặt lại chỉ mục trong khi sắp xếp
Đôi khi bạn có thể cần đặt chỉ mục mới cho kết quả sắp xếp, bạn có thể thực hiện việc này trong khi sắp xếp bằng cách sử dụng
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
6 hoặc bằng cách gọi pandas. Khung dữ liệu. reset_index[] trên DataFrame đã sắp xếp
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
0_______9_______16. Sắp xếp theo NaN lúc đầu
Theo mặc định, NaN trên các giá trị được đẩy ở dưới cùng của DataFrame, bạn có thể đẩy nó ngay từ đầu bằng cách sử dụng tham số
Courses Fee Duration Discount
r1 Spark 20000 30days 1000
r2 Hadoop 25000 40days 2500
r3 pandas 30000 35days 1500
r4 Java 22000 60days 1200
r5 Pyspark 26000 50days 3000
7. Nếu bạn không muốn các giá trị NaN, hãy sử dụng dropna[] để thả các hàng bằng NaN
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
2Sản lượng dưới sản lượng
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
37. Pandas sắp xếp cột theo chức năng tùy chỉnh
Trong trường hợp bạn muốn áp dụng một chức năng tùy chỉnh hoặc bất kỳ chức năng hiện có nào để sắp xếp, bạn có thể sử dụng key param. Ví dụ dưới đây chuyển đổi
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
9 thành chữ thường và thực hiện sắp xếp
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
4Sản lượng dưới sản lượng
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
5Cuối cùng, bạn cũng có thể sắp xếp bằng cách sử dụng các thuật toán sắp xếp khác nhau. Tôi sẽ để điều này cho bạn khám phá
8. Ví dụ đầy đủ về pandas Sắp xếp theo giá trị cột
import pandas as pd
technologies = [{
'Courses':["Spark","Hadoop","pandas","Java","Pyspark"],
'Fee' :[20000,25000,30000,22000,26000],
'Duration':['30days','40days','35days','60days','50days'],
'Discount':[1000,2500,1500,1200,3000]
}]
df = pd.DataFrame[technologies, index = ['r1','r2','r3','r4','r5']]
print[df]
6Phần kết luận
Trong bài viết này, bạn đã học cách sắp xếp DataFrame theo giá trị cột bằng Dataframe. sort_values[] theo thứ tự tăng dần hoặc giảm dần. Ngoài ra, đã học cách sử dụng các chức năng tùy chỉnh bằng biểu thức lambda