【发布时间】:2022-01-14 00:55:43
【问题描述】:
现在,我正在使用这个数据框..
| Name | DateSolved | Points |
|---|---|---|
| Jimmy | 12/3 | 100 |
| Tim | 12/4 | 50 |
| Jo | 12/5 | 25 |
| Jonny | 12/5 | 25 |
| Jimmy | 12/8 | 10 |
| Tim | 12/8 | 10 |
此时,如果数据集中有重复的名称,我只需使用 df.sort_values('DateSolved').drop_duplicates('Name', keep='last') 从数据框中删除最旧的名称(按日期),从而生成这样的数据集
| Name | DateSolved | Points |
|---|---|---|
| Jo | 12/5 | 25 |
| Jonny | 12/5 | 25 |
| Jimmy | 12/8 | 10 |
| Tim | 12/8 | 10 |
但是,我不想放弃最旧的,而是希望保留它,但要减少 50% 的分数。像这样的
| Name | DateSolved | Points |
|---|---|---|
| Jimmy | 12/3 | 50 (-50%) |
| Tim | 12/4 | 25 (-50%) |
| Jo | 12/5 | 25 |
| Jonny | 12/5 | 25 |
| Jimmy | 12/8 | 10 |
| Tim | 12/8 | 10 |
我该怎么做呢?我找不到一种方法来根据“名称”查找重复项,然后更改同一行中“点”列的值。
谢谢!
【问题讨论】:
标签: python pandas dataframe csv