帮我写一段Python 代码,现在有一个数据表,有姓名,年龄,工资,日期,帮我保留每一个姓名对应的最大日期的数据,你自己虚构数据表,并展示结果
时间: 2024-03-09 13:48:16 浏览: 20
好的,可以使用 pandas 库来实现:
```python
import pandas as pd
data = {
'姓名': ['张三', '李四', '张三', '王五', '李四', '张三'],
'年龄': [18, 20, 22, 25, 28, 30],
'工资': [2000, 2500, 3000, 3500, 4000, 4500],
'日期': ['2022-01-01', '2021-12-31', '2022-01-02', '2022-01-01', '2022-01-03', '2022-01-05']
}
df = pd.DataFrame(data) # 创建数据表
df['日期'] = pd.to_datetime(df['日期']) # 将日期列转换为 datetime 类型
df = df.sort_values(by='日期', ascending=False) # 按日期降序排序
df.drop_duplicates(subset=['姓名'], keep='first', inplace=True) # 根据姓名去重,保留日期最大的
print(df)
```
其中,使用 `pd.DataFrame(data)` 创建了一个虚构的数据表,`pd.to_datetime(df['日期'])` 将日期列转换为 datetime 类型,`df.sort_values(by='日期', ascending=False)` 按日期降序排序,`df.drop_duplicates(subset=['姓名'], keep='first', inplace=True)` 根据姓名去重,保留日期最大的。最后打印出去重后的数据表。
运行结果如下:
```
姓名 年龄 工资 日期
5 张三 30 4500 2022-01-05
4 李四 28 4000 2022-01-03
3 王五 25 3500 2022-01-01
```