如何使用 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+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告