Pandas DataFrame Rangierungsmethode

Beginner

Einführung

In diesem Lab lernen Sie, wie Sie die Methode DataFrame.rank() in Pandas verwenden, um den Daten in einem DataFrame Ränge zuzuweisen. Die Methode rank() gibt einen numerischen Rang von 1 bis n entlang der angegebenen Achse zurück, die entweder die Index- oder die Spaltenachse sein kann. Dies ermöglicht es Ihnen, die Rangfolge der Werte in einem DataFrame basierend auf einer bestimmten Spalte zu bestimmen.

Tipps für die virtuelle Maschine (VM)

Nachdem die VM gestartet wurde, klicken Sie in der oberen linken Ecke auf die Registerkarte Notebook, um auf Jupyter Notebook für die Übung zuzugreifen.

Manchmal müssen Sie möglicherweise einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Aufgrund von Einschränkungen in Jupyter Notebook kann die Validierung von Operationen nicht automatisiert werden.

Wenn Sie während des Lernens Probleme haben, können Sie sich gerne an Labby wenden. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem umgehend für Sie beheben.

Erstellen eines DataFrames und Rangieren einer Spalte

Zunächst erstellen wir einen DataFrame und verwenden die Methode rank(), um einem der Spalten im DataFrame Ränge zuzuweisen. In diesem Beispiel werden wir die Spalte 'Profit' in aufsteigender Reihenfolge rangieren.

## Import the pandas library
import pandas as pd

## Create a DataFrame
df = pd.DataFrame({
    'Product_Id': [1001, 1002, 1003, 1004],
    'Product_Name': ['Coffee powder', 'Black pepper', 'rosemary', 'Cardamom'],
    'customer_Name': ['Navya', 'Vindya', 'pooja', 'Sinchana'],
    'ordered_Date': ['16-3-2021', '17-3-2021', '18-3-2021', '18-3-2021'],
    'ship_Date': ['18-3-2021', '19-3-2021', '20-3-2021', '20-3-2021'],
    'Profit': [750, 652.14, 753.8, 900.12]
})

## Use the rank() method to assign ranks to the 'Profit' column
df['ranked_profit'] = df['Profit'].rank()

## Display the DataFrame
df

Rangieren einer Spalte in absteigender Reihenfolge

Als Nächstes ändern wir das Beispiel aus Schritt 1, indem wir den Parameter ascending auf False setzen. Dadurch wird die Spalte in absteigender Reihenfolge gerankt.

## Import the pandas library
import pandas as pd

## Create a DataFrame
df = pd.DataFrame({
    'Product_Id': [1001, 1002, 1003, 1004],
    'Product_Name': ['Coffee powder', 'Black pepper', 'rosemary', 'Cardamom'],
    'customer_Name': ['Navya', 'Vindya', 'pooja', 'Sinchana'],
    'ordered_Date': ['16-3-2021', '17-3-2021', '18-3-2021', '18-3-2021'],
    'ship_Date': ['18-3-2021', '19-3-2021', '20-3-2021', '20-3-2021'],
    'Profit': [750, 652.14, 753.8, 900.12]
})

## Use the rank() method to assign ranks to the 'Profit' column in descending order
df['ranked_profit'] = df['Profit'].rank(ascending=False)

## Display the DataFrame
df

Rangieren einer Spalte mit verschiedenen Methoden

Wenn der DataFrame doppelte Werte enthält, können Sie verschiedene Methoden verwenden, um die Spalte zu rangieren.

  • Die Methode 'average' weist den doppelten Werten den Durchschnittsrang zu.
  • Die Methode 'min' weist den doppelten Werten den niedrigsten Rang zu.
  • Die Methode 'max' weist den doppelten Werten den höchsten Rang zu.
  • Die Methode 'first' weist die Ränge in der Reihenfolge zu, in der sie im DataFrame erscheinen.
  • Die Methode 'dense' ähnelt der Methode 'min', aber der Rang erhöht sich zwischen den Gruppen immer um 1.
## Import the pandas library
import pandas as pd

## Create a DataFrame
df = pd.DataFrame({
    'column_1': [1, 3, 3, 4, 7],
    'column_2': [1, 2, 3, 4, 5]
})

## Use the rank() method with different methods
df['average_rank'] = df['column_1'].rank(method='average')
df['min_rank'] = df['column_1'].rank(method='min')
df['max_rank'] = df['column_1'].rank(method='max')
df['first_rank'] = df['column_1'].rank(method='first')
df['dense_rank'] = df['column_1'].rank(method='dense')

## Display the DataFrame
df

Rangieren einer Spalte mit Nullwerten

Wenn der DataFrame Nullwerte (NaN) enthält, können Sie den Parameter na_option verwenden, um anzugeben, wie die Nullwerte gerankt werden sollen.

  • Wenn na_option auf 'keep' gesetzt ist, werden den Nullwerten NaN-Ränge zugewiesen.
  • Wenn na_option auf 'top' gesetzt ist, werden den Nullwerten der kleinste Rang zugewiesen.
  • Wenn na_option auf 'bottom' gesetzt ist und ascending=True, werden den Nullwerten der höchste Rang zugewiesen.
## Import the pandas library
import pandas as pd
import numpy as np

## Create a DataFrame with null values
df = pd.DataFrame({
    'column_1': [1, 3, np.nan, 4, np.nan],
    'column_2': [1, 2, 3, np.nan, np.nan]
})

## Use the rank() method with different na_option parameters
df['keep_rank_Nan'] = df['column_2'].rank(na_option='keep')
df['Top_rank_Nan'] = df['column_2'].rank(na_option='top')
df['Bottom_rank_Nan'] = df['column_1'].rank(na_option='bottom')

## Display the DataFrame
df

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Methode DataFrame.rank() in Pandas verwenden, um Ränge den Daten in einem DataFrame zuzuweisen. Sie können verschiedene Parameter wie die Achse (axis), die Methode (method), die Berücksichtigung nur numerischer Werte (numeric_only), die Behandlung von Nullwerten (na_option), die Sortierrichtung (ascending) und die Angabe als Prozentwert (pct) angeben, um den Rangierungsprozess anzupassen. Die Methode rank() ist nützlich, um die Position von Werten innerhalb einer Spalte zu bestimmen und Daten basierend auf Rängen zu sortieren.