我在python中使用panda数据帧读取数据并将数据存储在MySQL / MariaDB数据库中时遇到了一些错误。我正在尝试将计算出的日期以YYYY-MM-DD的形式存储到数据框中。我正在将其输入到数据帧中,但是由于某种原因,它被转换为格式为“ YYYY-MM-DD HH:MM:SS”的时间戳,但没有明显的原因。
我不会显示完整的代码,但仅显示与该日期错误有关的部分,因为我已确认其他变量已正确传递。
for j in range(0, final_day):
DateW = DateP + dt.timedelta(days = j + int(First_day))
DateWCorr=datetime.date(DateW.year,DateW.month,DateW.day)
print(DateWCorr,'New')
if j < length + offset:
if DateW != ws_date[indexw[j-offset]]:
doy = (DateW - datetime.date(today.year, 1, 1)).days + 1
new_record = pd.DataFrame(DateWCorr,columns=['Date'])
WeatherArray = pd.concat([WeatherArray,new_record])
else:
*****OMITTED FOR CLARITY SAKE**********
print("Check",WeatherArray['Date'])
WeatherArray = WeatherArray.sort_values('Date')
WeatherArray = WeatherArray.reset_index()
显示打印语句的语法:
2018-05-06 New
2018-05-07 New
2018-05-08 New
2018-05-09 New
2018-05-10 New
..............
打印WeatherArray的日期.....
2018-04-20 00:00:00
2018-04-21 00:00:00
2018-04-22 00:00:00
2018-04-23 00:00:00
.............(loops through all dates, omitted for clarity)
为什么要将它们转换为其他格式?我一生无法解决这个问题。
答案 0 :(得分:1)
此脚本是否从字段类型为datetime
的数据库表中提取?
如果是这样,我猜想来自数据库的日期时间正在与日期合并,而Python默默地将日期强制为日期时间。
您可以尝试将数据库模式更改为date
类型,或者在将新记录放入WeatherArray
之前,将加载的数据显式更改为日期。