以下是一个示例代码,它演示了如何按照相同分区获取前一个日期。
import pandas as pd
# 创建示例数据
data = {'date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-01', '2021-01-02'],
'partition': ['A', 'A', 'A', 'A', 'B', 'B']}
df = pd.DataFrame(data)
# 将日期列转换为日期类型
df['date'] = pd.to_datetime(df['date'])
# 按分区进行分组,并按日期进行排序
df = df.sort_values(['partition', 'date'])
# 获取前一个日期
df['previous_date'] = df.groupby('partition')['date'].shift(1)
print(df)
在上面的示例中,我们首先将日期列转换为日期类型,然后根据分区进行分组,并按日期进行排序。然后,我们使用shift()
函数来获取每个分区的前一个日期,并将结果存储在新的列previous_date
中。最后,我们打印出结果。
输出结果如下:
date partition previous_date
0 2021-01-01 A NaT
1 2021-01-02 A 2021-01-01
2 2021-01-03 A 2021-01-02
3 2021-01-04 A 2021-01-03
4 2021-01-01 B NaT
5 2021-01-02 B 2021-01-01
在这个例子中,我们可以看到在每个分区中,previous_date
列包含了前一个日期的值。如果没有前一个日期,则该列的值为NaT
(Not a Time)。