如何在 Excel 中使用 Pandas 排序日期?
像 Excel 這樣強大的應用程式在處理資料陣列方面已經取得了顯著成就,但某些複雜的處理可能需要更強大的工具集。特別是,如果初始資料存在偏差或需要高階排序機制,則對基於日期的條目進行排列的任務可能會帶來獨特的挑戰。Pandas——一個專門為資料處理和分析而設計的強大的 Python 庫——填補了這一空白。本文將闡明如何使用 Pandas 來最佳化 Excel 表格中日期的順序,並對每一行程式碼進行清晰的解釋。
安裝 Pandas 和 OpenPyXL
在我們深入程式碼之前,務必在您的環境中預安裝 Pandas。Python 的包安裝程式 pip 可以簡潔地完成這項工作:
pip install pandas
讓我們開始概述我們努力的通用演算法:
匯入所需的 Python 庫。
將 CSV 檔案匯入 DataFrame。
根據指定的列或條件對 DataFrame 進行排序。
(可選) 將排序後的 DataFrame 存檔回 CSV 檔案。
示例
在下面的例子中,我們將學習如何使用簡單的 pandas 庫在 excel 中排序日期
import pandas as pd data = { 'Date': ['2023-01-01', '2022-01-01', '2023-05-01', '2022-05-01'], 'Year': [2023, 2022, 2023, 2022], 'Month': [1, 1, 5, 5], 'Day': [1, 1, 1, 1], 'Value': [100, 200, 150, 250] } df = pd.DataFrame(data) print(df)
輸出
Date Year Month Day Value 0 2023-01-01 2023 1 1 100 1 2022-01-01 2022 1 1 200 2 2023-05-01 2023 5 1 150 3 2022-05-01 2022 5 1 250
示例
sort_values(by=['Date'], key=pd.to_datetime)
此技術包括三個關鍵步驟:
a. 匯入 pandas 並將您的 CSV 檔案匯入 DataFrame。
b. 使用 sort_values 對 DataFrame 進行排序。在括號中,“by”指定要排序的列(此處為“Date”),而“key”使用 pd.to_datetime 將“Date”字串轉換為 datetime 物件,以確保精確排序。
c. 瞧!您的 DataFrame 現在已按日期正確排序,從最早到最新。
import pandas as pd # Read the CSV file into a DataFrame data = pd.read_csv('filename.csv') # Sort the DataFrame by the 'Date' column data.sort_values(by='Date', key=pd.to_datetime, inplace=True) # Print the sorted DataFrame print(data)
輸出
Date Value 1 2022-01-01 200 3 2022-05-01 250 0 2023-01-01 100 2 2023-05-01 150
sort_values(by=['Year', 'Month', 'Day'])
此方法主要:
首先匯入 pandas 並將您的 CSV 資料匯入 DataFrame。
使用 sort_values 對 DataFrame 進行排序。這次,我們按多個列排序,這些列在“by”下的列表中指定。DataFrame 將首先按“Year”排序,然後在每個年份內按“Month”排序,最後在每個月份內按“Day”排序。
您的 DataFrame 現在按年份、月份和日期整齊排序。
示例
import pandas as pd # Read the CSV file into a DataFrame data = pd.read_csv('filename.csv') # Sort the DataFrame by the 'Year', 'Month' and 'Day' columns data.sort_values(by=['Year', 'Month', 'Day'], inplace=True) # Print the sorted DataFrame print(data)
輸出
Year Month Day Value 1 2022 1 1 200 3 2022 5 1 250 0 2023 1 1 100 2 2023 5 1 150
sort_values(key=pd.to_datetime)
此方法與其他方法略有不同。以下是其工作原理:
您首先匯入 pandas 並將您的 CSV 資料匯入 DataFrame,類似於以前的方法。
接下來,您使用 sort_values 對 DataFrame 進行排序,但這次沒有指定“by”。相反,您使用“key”將 DataFrame 索引轉換為 datetime 物件(假設索引是日期),這確保了正確的排序。
您的 DataFrame 現在根據日期索引排序。
示例
import pandas as pd # Read the CSV file into a DataFrame data = pd.read_csv('filename.csv') # Sort the DataFrame by the 'Date' column data.sort_values(by='Date', key=pd.to_datetime, inplace=True) # Set 'Date' as the DataFrame's index data.set_index('Date', inplace=True) # Print the sorted DataFrame print(data)
輸出
Date Value 2022-01-01 200 2022-05-01 250 2023-01-01 100 2023-05-01 150
sort_index()
此技術的工作原理如下:
首先匯入 pandas 並將您的 CSV 檔案匯入 DataFrame。
使用 sort_index 按其索引對 DataFrame 進行排序。此方法不需要任何引數,因為它會自動按 DataFrame 的索引排序。
您的 DataFrame 現在根據其索引排序。
示例
import pandas as pd # Read the CSV file into a DataFrame data = pd.read_csv('filename.csv') # Sort the DataFrame by its index data.sort_index(inplace=True) # Print the sorted DataFrame print(data)
輸出
Value 0 200 1 100 2 150 3 250
在所有程式碼示例中,請將“filename.csv”替換為 CSV 檔案的實際路徑。
結論
在本文中,我們仔細演示了使用 Pandas 來處理 Excel 檔案中日期順序的過程。Python 的多功能 pandas 庫是一個有效的工具,可以根據各種條件(例如按列值或索引)對 CSV 檔案中的資料進行排序。將排序後的資料存檔回 CSV 檔案保留了結構化資料,以便進一步探索或未來操作,從而展示了 Python 強大的資料處理能力。