如何在 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+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.