python 错误: can only concatenate str (not "datetime.timedelta") to str

标签 python

我正在尝试获取两个日期之间的周数并按周分成几行,这是我收到的错误消息:

只能将 str(不是“datetime.timedelta”)连接到 str 任何人都可以帮忙吗?谢谢!!!

import datetime
import pandas as pd


df=pd.read_csv(r'C:\Users\xx.csv')
print(df)

# Convert dtaframe to dates
df['Start Date'] = pd.to_datetime(df['start_date'])
df['End Date'] = pd.to_datetime(df['end_date'])

df_out = pd.DataFrame()

week = 7

# Iterate over dataframe rows

for index, row in df.iterrows():
    date = row["start_date"]
    date_end = row["end_date"]
    dealtype = row["deal_type"]
    ppg = row["PPG"]
    # Get the weeks for the row
    while date < date_end:
        date_next = date + datetime.timedelta(week - 1)
        df_out = df_out.append([[dealtype, ppg, date, date_next]])
        date = date_next + datetime.timedelta(1)

# Remove extra index and assign columns as original dataframe

df_out = df_out.reset_index(drop=True)
df_out.columns = df.columns
df.to_csv(r'C:\Users\Output.csv', index=None)

最佳答案

date 是一个 Timestamp 对象,稍后会转换为 datetime.timedelta 对象。

datetime.timedelta(week - 1) 是一个 datetime.timedelta 对象。

这两个对象都可以使用 str() 转换为字符串。

如果要连接字符串,只需用 str() 将其包裹起来即可

date_next = str(date) + str(datetime.timedelta(week - 1))

关于 python 错误: can only concatenate str (not "datetime.timedelta") to str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67293511/

相关文章:

python - 如何在 NumPy 中构建三线性插值的查找表?

Python OpenCV 对圆角矩形进行透视校正

python - 使用正则表达式拆分 URL

python - 获取相关对象列表 - Django Queryset

python - 当用户在python中单击 'ok'时,如何保存用户文本框输入?

要列出的 Python 字符串?

python - 为什么 Python 解包运算符适用于无序集合

python - 索引错误: list index out of range: I can uderstand why this error happens

python - 在Python中使用for循环从多个文件导入列表

python - 使用 Django Rest Framework 时如何获取初始 CSRF token