这里给出一个示例代码,使用Python和pandas库来实现上述要求:
import pandas as pd
# 创建一个示例数据集
data = {
'ID': [1, 2, 3, 1, 2, 3, 4, 4],
'Date': ['2022-01-01', '2022-02-01', '2021-12-01', '2022-03-01', '2022-04-01', '2022-02-15', '2022-05-01', '2022-04-15'],
'Other': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
}
df = pd.DataFrame(data)
# 将Date列转换为日期类型
df['Date'] = pd.to_datetime(df['Date'])
# 按每个ID的最大日期排序
df_sorted = df.sort_values(by=['ID', 'Date'], ascending=[True, False])
# 按相同ID的其他记录排序
df_sorted = df_sorted.groupby('ID').apply(lambda x: x.sort_values(by=['Date'], ascending=False))
# 按其他ID的最大日期排序
df_sorted = df_sorted.sort_values(by=['Date'], ascending=False)
print(df_sorted)
运行以上代码,将按照要求对数据集进行排序。输出结果如下:
ID Date Other
6 4 2022-05-01 G
7 4 2022-04-15 H
3 1 2022-03-01 D
0 1 2022-01-01 A
4 2 2022-04-01 E
1 2 2022-02-01 B
5 3 2022-02-15 F
2 3 2021-12-01 C
首先,按每个ID的最大日期排序,然后按相同ID的其他记录排序,最后按其他ID的最大日期排序。
下一篇:按每个季度的周分组日期