pandas - 熊猫数据框中的计算列
问题描述
我有以下数据框
数据框代码:
df = pd.DataFrame({'Car Type': ['Compact']*9 + ['Economy'],
'Supplier':['Alamo','Enterprise','Budget','Nation', 'Avis','Payless','Payless','Payless','E-ZRent-a-Car','E-ZRent-a-Car'],
'Total Price':[74]*3+[78,79,84,35,37,43,43],
'Location':['Altanta']*10,
'Pick-up Date':['Jun/12/2019']*6+['Jun/13/2019']*4,
'Date Accessed':['06-11-2019']*10})
我需要创建一个数据框,其中包含“供应商”、“汽车类型”、“取货日期”、“访问日期”的唯一组合列表以及竞争报价的数量和可用的最佳竞争对手价格 1 “取件日期”前 -14 天。
任何帮助,将不胜感激。
解决方案
国际大学联合会,
您需要先过滤数据框,然后按总价排序并删除重复项。
df[(df['Pick-up Date'] - df['Date Accessed']) < pd.Timedelta(days=14)]\
.sort_values('Total Price', ascending=False).drop_duplicates(['Car Type', 'Supplier',
'Pick-up Date', 'Date Accessed'])
输出:
Car Type Supplier Total Price Location Pick-up Date Date Accessed
5 Compact Payless 84 Altanta 2019-06-12 2019-06-11
4 Compact Avis 79 Altanta 2019-06-12 2019-06-11
3 Compact Nation 78 Altanta 2019-06-12 2019-06-11
0 Compact Alamo 74 Altanta 2019-06-12 2019-06-11
1 Compact Enterprise 74 Altanta 2019-06-12 2019-06-11
2 Compact Budget 74 Altanta 2019-06-12 2019-06-11
8 Compact E-ZRent-a-Car 43 Altanta 2019-06-13 2019-06-11
9 Economy E-ZRent-a-Car 43 Altanta 2019-06-13 2019-06-11
7 Compact Payless 37 Altanta 2019-06-13 2019-06-11
推荐阅读
- c# - 自定义 UWP TimePicker (Flyout) 的样式
- game-center - GKTurnBasedMatch - CurrentParticipant 未触发播放器( receivedExchangeReplies )
- python - 使用 boto3 在 python 中自动填充 DynamoDB 中的时间戳
- c# - 如何在 .NET 项目中使用 Python virtualenv 进行进程?
- eclipse - 在 Eclipse 中找不到 HttpUnit 导入
- bitbucket - Bitbucket Pipelines 无法部署到 Elastic Beanstalk
- c# - 如何将弹出编辑器与网格单元对齐?
- ios - 为什么 UITableViewCell 需要注册?
- xml - XSL 模型:添加过滤器
- jquery - jquery将类添加到背景图像