'datetime.datetime'在python中没有属性'datetime'

时间:2019-03-27 23:53:47

标签: python datetime arcgis arcpy

嗨,我有很长的代码,也许您想告诉我,所以我正在尝试解决这个问题,我很确定代码是正确的,但它总是让我遇到相同的错误,我会尽一切努力解决但它相同,我检查属性是否丢失,但是在那里我不知道我做错了什么 这是我的代码

import pandas as pd
import geopandas as gpd
import time
import pickle
import os
import numpy as np
import xgboost
import pytz
import arcgis
#
#plotting
#'''
from IPython.display import HTML, display
import datashader as ds
from datashader import transfer_functions as tf
from datashader.colors import colormap_select, Greys9, Hot, viridis, inferno
#'''

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
from matplotlib.ticker import NullFormatter
import matplotlib as mpl
mpl.rc('xtick', color='k')
mpl.rc('ytick', color='k')
%matplotlib inline
#'''
import datetime
from pandas import Series
from datetime import datetime, timedelta
import time
from datetime import datetime, date, time, timedelta


predTimest = pd.date_range('01/06/2017', periods=7*24, freq='H',tz='US/Mountain')
predTimest
n [28]:


predTimest


Out[28]:
DatetimeIndex(['2017-01-06 00:00:00-07:00', '2017-01-06 01:00:00-07:00',
               '2017-01-06 02:00:00-07:00', '2017-01-06 03:00:00-07:00',
               '2017-01-06 04:00:00-07:00', '2017-01-06 05:00:00-07:00',
               '2017-01-06 06:00:00-07:00', '2017-01-06 07:00:00-07:00',
               '2017-01-06 08:00:00-07:00', '2017-01-06 09:00:00-07:00',
               ...
               '2017-01-12 14:00:00-07:00', '2017-01-12 15:00:00-07:00',
               '2017-01-12 16:00:00-07:00', '2017-01-12 17:00:00-07:00',
               '2017-01-12 18:00:00-07:00', '2017-01-12 19:00:00-07:00',
               '2017-01-12 20:00:00-07:00', '2017-01-12 21:00:00-07:00',
               '2017-01-12 22:00:00-07:00', '2017-01-12 23:00:00-07:00'],
              dtype='datetime64[ns, US/Mountain]', length=168, freq='H')
prediction_time = predTimest[15]
test_df = shapefile.copy()
test_df['timestamp'] = prediction_time
test_df['allah1__27'] = shapefile.allah1__27.astype('int64')
test_df['hour'] = prediction_time.hour
test_df['weekday'] = prediction_time.weekday()
test_df['month'] = prediction_time.month
def add_join_key(df):
    df['join_key'] = df.allah1__27.map(int).map(str)+df.timestamp.map(datetime.datetime.isoformat)
    df = df.set_index('join_key')
    return df
weath_df = wdf.loc[prediction_time]
test_df = add_join_key(test_df)
weath_df = add_join_key(weath_df.reset_index())

它给了我这个错误

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-65-4714b1ff587e> in <module>
----> 1 test_df = add_join_key(test_df)
      2 weath_df = add_join_key(weath_df.reset_index())

<ipython-input-63-1a4e6a6f2c07> in add_join_key(df)
      1 def add_join_key(df):
----> 2     df['join_key'] = df.allah1__27.map(int).map(str)+df.timestamp.map(datetime.datetime.isoformat)
      3     df = df.set_index('join_key')
      4     return df

AttributeError: type object 'datetime.datetime' has no attribute 'datetime'

2 个答案:

答案 0 :(得分:0)

您已在脚本顶部两次导入日期时间,最后一次导入具有优先权:

import datetime
from datetime import datetime, timedelta

因此,您应该致电:

datetime.isoformat

答案 1 :(得分:0)

您不应该import datetime,也不应该from datetime import datetime。最佳做法是仅import datetime,然后如果您想进行更深层次的模块调用datetime.datetime,否则您将创建两个具有完全相同名称的东西……显然,这会导致感到困惑。如果您确实要同时导入两者,则将其重命名为

import datetime
from datetime import datetime as datet

现在您可以将一个称为datetime,将另一个称为datet,而不必使它们的两者都使用相同的名称“ datetime” < / p>