我必须每天运行python脚本来只提取特定日期的最新记录&最新记录应该附加到一个csv文件中。
这里我有4列开始日期、结束日期、虚拟ID、值
data = 'startdate': {0:'2022-12-19 06:01:12+00:00',
1: '2022-12-19 13:49:09+00:00',
2: '2022-12-19 13:20:36+00:00',
3: '2022-12-08 13:55:09+00:00',
4: '2022-12-08 13:32:36+00:00',
5: '2023-01-09 15:14:07+00:00',
6: '2023-01-09 15:16:35+00:00'},
'enddate': {0:'2022-12-19 06:25:06+00:00',
1: '2022-12-19 13:59:29+00:00',
2: '2022-12-19 13:26:40+00:00',
3: '2022-12-08 13:55:27+00:00',
4: '2022-12-08 13:45:41+00:00',
5: '2023-12-09 15:29:39+00:00',
6: '2023-01-09 15:28:43+00:00'},
'virtual_id': {0: 1122, 1: 1125, 2: 1144,3: 1100, 4: 1136, 5: 1181, 6:1188},
'value': {0:2000, 1: 5000, 2: 70000, 3: 8000, 4: 90000,5: 7200, 6: 81000}
}
df = pd.DataFrame(data)
如果我在1月9日运行脚本,则1月9日的预期输出应显示1月8日的记录,而不是之前的07、06等天
data = 'startdate': {0: '2022-12-08 13:55:09+00:00',
1: '2022-12-08 13:32:36+00:00',},
'enddate': { 0: '2022-12-08 13:55:27+00:00',
1: '2022-12-08 13:45:41+00:00', },
'virtual_id': {0:1144, 1:1100},
'value': {0: 70000, 1: 8000}
}
如果我在1月10日运行脚本,预期输出应显示1月9日本身的记录,而不是08日、07日、06日等
data = 'startdate': {0: '2023-01-09 15:14:07+00:00',
1: '2023-01-09 15:16:35+00:00'},
'enddate': { 0: '2023-12-09 15:29:39+00:00',
1: '2023-01-09 15:28:43+00:00' },
'virtual_id': {0:1181, 1:1188},
'value': {0: 7200, 1: 81000}
}
我已经尝试下面的片段,但不工作
data = data[data.startdate == data.startdate.max()] & data[data.enddate == data.enddate.max()]
data = data.loc[[data.enddate.idxmax()]]
2条答案
按热度按时间fnvucqvd1#
您可以应用服装功能。
输出:
6kkfgxo02#
我不确定这是否适合您,但您可能遇到的一个问题是,您的
startdate
和enddate
列当前是字符串而不是datetime对象,将它们转换为datetime
允许您访问不同的部分,如日期、天、小时、分钟等。第二件事是,我认为您希望保留最大开始日期或最大结束日期的行,以便像示例中那样以最后两行结束。这意味着您需要
|
而不是&
输出: