SQL需求:根据Departure_Date列值重命名City列内容
问题描述
现有包含City、Departure_Date、Truck Number列的公交出发数据表格:
| City | Departure_Date | Truck Number |
|---|---|---|
| Berlin | 2022-05-01 | 001 |
| London | 2022-05-22 | 020 |
| Berlin | 2022-05-22 | 030 |
| London | 2022-05-08 | 090 |
需求:当多条记录的Departure_Date相同时,将这些记录的City列值替换为Central,其余记录保持原City值。期望输出表格如下:
| City | Departure_Date | Truck Number |
|---|---|---|
| Berlin | 2022-05-01 | 001 |
| Central | 2022-05-22 | 020 |
| Central | 2022-05-22 | 030 |
| London | 2022-05-08 | 090 |
解决方案(Python pandas实现)
- 统计每个
Departure_Date对应的记录条数 - 筛选出记录条数大于1的日期
- 将这些日期对应的
City列值替换为Central
import pandas as pd # 构造原始数据 df = pd.DataFrame({ 'City': ['Berlin', 'London', 'Berlin', 'London'], 'Departure_Date': ['2022-05-01', '2022-05-22', '2022-05-22', '2022-05-08'], 'Truck Number': ['001', '020', '030', '090'] }) # 计算每个日期的记录数 date_count = df['Departure_Date'].value_counts() # 获取存在重复的日期 repeat_dates = date_count[date_count > 1].index # 替换City列值 df.loc[df['Departure_Date'].isin(repeat_dates), 'City'] = 'Central' # 查看结果 print(df)
运行上述代码后,即可得到符合要求的输出表格。
内容的提问来源于stack exchange,提问作者Qwe76
相关产品推荐
相关产品推荐

