我正在尝试获取两个日期之间的周数并按周分成几行,这是我收到的错误消息:
只能将 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/