pandas实现跨月日期相减并写入到新列
时间: 2023-03-25 08:02:48 浏览: 68
可以使用 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
```
相关问题
pandas中两个日期列相减求天数并写入到新列
可以使用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两个日期相减得到int值
### 回答1:
可以使用pandas库中的Timedelta函数来实现日期相减,然后使用days属性获取相差的天数,最后转换为int类型。代码如下:
```python
import pandas as pd
date1 = pd.to_datetime('2021-01-01')
date2 = pd.to_datetime('2021-01-10')
delta = date2 - date1
result = int(delta.days)
print(result)
```
输出结果为:9
### 回答2:
要实现pandas中两个日期相减并得到int值,可以使用`datetime`模块和`Timedelta`类来完成。
首先,导入`pandas`和`datetime`模块:
```python
import pandas as pd
from datetime import datetime
```
然后,创建一个`DataFrame`对象,其中包含两个日期列:
```python
df = pd.DataFrame({'start_date': ['2021-01-01', '2021-01-05'],
'end_date': ['2021-01-10', '2021-01-15']})
```
接下来,将日期列的数据类型转换为`datetime`类型:
```python
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])
```
最后,使用`Timedelta`类计算两个日期的差值,并将结果转换为整数:
```python
df['date_diff'] = (df['end_date'] - df['start_date']).dt.days
```
代码中的`(df['end_date'] - df['start_date']).dt.days`会返回一个`Series`对象,其中包含了两个日期相差的天数,`.dt.days`会将结果转换为整数。
完整的实现代码如下:
```python
import pandas as pd
from datetime import datetime
df = pd.DataFrame({'start_date': ['2021-01-01', '2021-01-05'],
'end_date': ['2021-01-10', '2021-01-15']})
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])
df['date_diff'] = (df['end_date'] - df['start_date']).dt.days
print(df['date_diff'])
```
输出结果为:
```
0 9
1 10
Name: date_diff, dtype: int64
```
这样就实现了将两个日期相减并得到整数值的功能。
### 回答3:
可以使用pandas库中的`to_datetime`函数将日期字符串转换为日期对象,然后使用`timedelta`函数计算两个日期之间的差值,并将结果转换为整数。
以下是一个示例代码:
```python
import pandas as pd
# 输入日期字符串
date_str1 = "2022-09-20"
date_str2 = "2022-10-01"
# 将日期字符串转换为日期对象
date1 = pd.to_datetime(date_str1)
date2 = pd.to_datetime(date_str2)
# 计算日期差值并转换为整数
date_diff = (date2 - date1).days
# 打印结果
print("两个日期相差的天数为:", date_diff)
```
在上述代码中,首先导入了pandas库。然后,定义了两个日期字符串`date_str1`和`date_str2`。接下来,使用`to_datetime`函数将这两个字符串转换为日期对象`date1`和`date2`。然后,使用`timedelta`函数计算两个日期之间的差值,并将结果保存在`date_diff`变量中。最后,打印出这两个日期相差的天数。