题外话:在pandas中,无论是datetime.datetime格式,还是其他的日期格式,代表的日期是一样的,在匹配的时候,不需要转换成文本。
但是,在写入excel的时候,有时候需要转换成文本再写入,否则,会出现写入的日期是前一天的16点的情况。
python将日期格式改成文本:
一、第一种
import datetime
data = ['流量来源', '一级来源', '二级来源', '三级来源', '近15天趋势图', datetime.datetime(2023, 10, 21, 0, 0), datetime.datetime(2023, 10, 22, 0, 0), datetime.datetime(2023, 10, 23, 0, 0), datetime.datetime(2023, 10, 24, 0, 0), datetime.datetime(2023, 10, 25, 0, 0)]
def convert_datetime_to_str(item):
if isinstance(item, (datetime.datetime, datetime.date)): # 检查是否是 datetime 或 date 类型
return item.strftime("%Y-%m-%d")
else:
return item
data = [convert_datetime_to_str(item) for item in data]
print(data)
结果:
['流量来源', '一级来源', '二级来源', '三级来源', '近15天趋势图', '2023-10-21', '2023-10-22', '2023-10-23', '2023-10-24', '2023-10-25']
二、如果是在pd里面,修改某列的格式。
df1['日期'] = df1['日期'].dt.strftime('%Y-%m-%d')