如何使用 Pandas 對 DataFrame 按日期排序?


Python 的 Pandas DataFrame 定義了一個由行和列組成的二維結構。Pandas 的主要特點是提供了一種更簡單的方式來處理給定的資料。在 Python 中,我們有一些內建函式,例如 to_datetime()、sorted()、lambda 和 sort_value(),可以用來對 Pandas DataFrame 按日期排序。

語法

以下語法在示例中使用:

to_datetime()

to_datetime() 是 Python 中的一個內建函式,用於將字串日期轉換為日期時間物件。

sorted()

Python 的內建函式 sorted() 指出列表可以按指定的可迭代物件進行排序。

lambda

Python 中的 lambda 函式被稱為匿名函式。當需要函式物件時可以使用它。此函式操作程式的主要邏輯部分。

sort_values()

sort_values() 是 Python 中的一個內建函式,用於按升序或降序對 DataFrame 進行排序。

使用 sort_values() 函式

在以下示例中,我們將從匯入 pandas 模組開始程式,該模組將用於按日期處理 DataFrame。然後建立變數 d 來定義輸入字典。接下來,使用內建函式 DataFrame() 設定 DataFrame 並將其儲存在變數 df 中。然後使用內建函式 to_datetime 設定日期的格式,並將其儲存在變數 df['Date'] 中。繼續初始化名為 Date_result 的最後一個變數,該變數儲存值為 df.sort_value() 的值,它接受兩個引數 - 'Date' 和 ascending = True 以升序對 DataFrame 進行排序。最後,它將在 Date_result 變數的幫助下列印結果。

示例

import pandas as pd
# Create a sample DataFrame
d = { 'Date': ['2023-06-26', '2023-06-27', '2023-06-28', '2023-06-29'], 'Value': [100, 200, 300, 400] }
# Set the dataframe for date
df = pd.DataFrame(d)
# Convert the 'Date' column to datetime format
df['Date'] = pd.to_datetime(df['Date'])
# Sort the dataframe in ascending order
Date_result = df.sort_values('Date', ascending=True)
# The final output
print("Result of pandas Dataframe by Date:\n", Date_result)

輸出

 Result of pandas Dataframe by Date:
         Date  Value
0 2023-06-26    100
1 2023-06-27    200
2 2023-06-28    300
3 2023-06-29    400

使用 sorted() 函式

在以下示例中,程式使用兩種主要方法,即列表推導式和 sorted() 作為內建函式 DataFrame() 的引數來生成結果。

示例

import pandas as pd
# Create a sample DataFrame
d = { 'Date': ['2023-06-26', '2023-06-27', '2023-06-28', '2023-06-29'], 'Value': [11, 31, 456, 8534] }
# Create the dataframe
df = pd.DataFrame(d)
# Conversion of date into datetime format
df['Date'] = pd.to_datetime(df['Date'])
# using list comprehension and sorted()
res = pd.DataFrame(sorted(df.values, key=lambda x: x[0]), columns=df.columns)
# The final output
print("Result of pandas Dataframe by Date:\n", res)

輸出

 Result of pandas Dataframe by Date:
         Date  Value
0 2023-06-26     11
1 2023-06-27     31
2 2023-06-28    456
3 2023-06-29   8534

在 sort_values() 中使用 inplace 引數

在以下示例中,程式使用內建函式 to_datetime(),它接受 df['date'] 作為引數來設定日期時間格式的列。接下來,它將使用內建函式 sort_values(),它接受兩個引數 - Date 和 inplace = true,這意味著它按日期對 DataFrame 進行排序。

示例

import pandas as pd
# Create a sample DataFrame
data = { 'Date': ['2023-06-15', '2023-06-14', '2023-06-17', '2023-06-16'], 'Value': [10, 20, 30, 40] }
df = pd.DataFrame(data)
# Convert the 'Date' column to datetime format
df['Date'] = pd.to_datetime(df['Date'])
# Sort the DataFrame by the Date column using the parameter inplace
df.sort_values('Date', inplace=True)
print(df)

輸出

         Date  Value
1 2023-06-14     20
0 2023-06-15     10
3 2023-06-16     40
2 2023-06-17     30

使用 to_datetime() 函式

在以下示例中,我們將使用內建函式 DataFrame(),它接受變數 data 作為引數。使用此函式將資料轉換為 DataFrame。DataFrame 通常以二維方式建立資料。接下來,使用內建函式 to_datetime() 設定給定輸入日期的格式並生成結果。

示例

import pandas as pd
# Create a sample DataFrame
data = { 'Date': ['2023-06-15', '2023-06-14', '2023-06-17', '2023-06-16'], 'Value': [10, 20, 30, 40], 'Attendance': ['Present', 'Present', 'Absent', 'Absent'] }
# Create the dataframe for date
df = pd.DataFrame(data)
# Convert the 'Date' column to datetime format
df['Date'] = pd.to_datetime(df['Date'])
print("The Dataframe of Date result:\n", df)

輸出

 The Dataframe of Date result:
         Date  Value Attendance
0 2023-06-15     10    Present
1 2023-06-14     20    Present
2 2023-06-17     30     Absent
3 2023-06-16     40     Absent

結論

Pandas 是一個開源庫,代表著 Python 的頂級庫。在本文中,我們討論了各種方法,其中使用了一些內建函式,例如 to_datetime()、DataFrame() 等,來滿足特定條件和操作。這種型別的程式通常用於資料科學領域。

更新於: 2023年8月17日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告