用pandas lambda 函数求,给定日期列,求该日期距离改月第一天的天数
时间: 2024-03-06 17:49:21 浏览: 88
可以使用 Pandas 的 `apply` 方法以及 Python 的 `datetime` 模块来实现。假设日期列名为 "date",可以按如下方式定义一个 lambda 函数来计算日期距离该月第一天的天数:
```python
import datetime
import pandas as pd
df = pd.DataFrame({'date': ['2022-01-03', '2022-02-14', '2022-03-20']})
df['days_since_month_start'] = df['date'].apply(lambda x: (datetime.datetime.strptime(x, '%Y-%m-%d').date() - datetime.date(year=x.year, month=x.month, day=1)).days)
```
这里先使用 `datetime.datetime.strptime` 方法将字符串类型的日期转换为 `datetime.date` 类型,然后再用 `datetime.date` 构造函数构造出该日期所在月份的第一天,两者相减并使用 `days` 方法获取天数即可。
最终得到的结果如下:
```
date days_since_month_start
0 2022-01-03 2
1 2022-02-14 13
2 2022-03-20 19
```
阅读全文