如何在 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 強大的資料處理能力。

更新於:2023年8月9日

1K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告