pandas中两个日期列相减求天数并写入到新列
时间: 2023-03-25 22:02:43 浏览: 123
可以使用pandas中的datetime库,将两个日期列转换为datetime格式,然后相减得到时间差,再将时间差转换为天数并写入新列。具体代码如下:
```python
import pandas as pd
# 创建示例数据
df = pd.DataFrame({'start_date': ['2022-01-01', '2022-01-02', '2022-01-03'],
'end_date': ['2022-01-05', '2022-01-06', '2022-01-07']})
# 将日期列转换为datetime格式
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])
# 计算时间差并转换为天数
df['days'] = (df['end_date'] - df['start_date']).dt.days
# 输出结果
print(df)
```
输出结果为:
```
start_date end_date days
2022-01-01 2022-01-05 4
1 2022-01-02 2022-01-06 4
2 2022-01-03 2022-01-07 4
```
相关问题
pandas中两个日期列相减求天数
可以使用 pandas 的 datetime 模块中的 date 方法将日期列转换为 datetime 类型,然后相减并取得天数,示例代码如下:
```
import pandas as pd
df = pd.DataFrame({'start_date': ['2022-01-01', '2022-01-02'], 'end_date': ['2022-01-05', '2022-01-07']})
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])
df['days'] = (df['end_date'] - df['start_date']).dt.days
print(df)
```
输出结果为:
```
start_date end_date days
2022-01-01 2022-01-05 4
1 2022-01-02 2022-01-07 5
```
pandas实现跨月日期相减并写入到新列
可以使用 pandas 的 datetime 模块来实现跨月日期相减,并将结果写入到新列中。具体实现可以参考以下代码:
```python
import pandas as pd
# 创建示例数据
df = pd.DataFrame({
'start_date': ['2021-01-15', '2021-02-20', '2021-03-10'],
'end_date': ['2021-02-05', '2021-03-15', '2021-04-01']
})
# 将日期列转换为 datetime 类型
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])
# 计算相差天数并写入新列
df['diff_days'] = (df['end_date'] - df['start_date']).dt.days
# 打印结果
print(df)
```
输出结果如下:
```
start_date end_date diff_days
2021-01-15 2021-02-05 21
1 2021-02-20 2021-03-15 23
2 2021-03-10 2021-04-01 22
```
阅读全文