首页 > 解决方案 > 将日期时间类型的数组分配给熊猫数据框

问题描述

我将这些数组分配到 pandata 框架中。

date_quote = []
price1 = []
price2 = []

数组已填充值。price1[],price2[]包含浮动值,而date_quote[]包含datetype值。

这就是我将数组分配到熊猫数据框中的方式。

df = pd.DataFrame({'price1 ':price1 ,
                   'price2 ': price2 ,
                   'date': date_quote
                   })

我收到以下错误;

  File "pandas\_libs\tslib.pyx", line 492, in pandas._libs.tslib.array_to_datetime
  File "pandas\_libs\tslib.pyx", line 537, in pandas._libs.tslib.array_to_datetime
ValueError: Tz-aware datetime.datetime cannot be converted to datetime64 unless utc=True
  File "pandas\_libs\tslibs\conversion.pyx", line 178, in pandas._libs.tslibs.conversion.datetime_to_datetime64
  File "pandas\_libs\tslibs\conversion.pyx", line 387, in pandas._libs.tslibs.conversion.convert_datetime_to_tsobject
AttributeError: 'pywintypes.datetime' object has no attribute 'nanosecond'

问题来自分配date_quote[]哪个是datetime类型。如果我没有分配date_quote[]到数据框中,代码将成功运行。

内容的date_quote[1]样子2018-07-26 00:00:00+00:00。我只需要日期,不需要时间信息date_quote[]。我是否需要进行任何额外的转换才能将此datetime类型date_quote[]数组存储到数据框中?

的输出print (date_quote[:3]) [pywintypes.datetime(2018, 7, 26, 0, 0, tzinfo=TimeZoneInfo('GMT Standard Time', True)), pywintypes.datetime(2018, 7, 27, 0, 0, tzinfo=TimeZoneInfo('GMT Standard Time', True)), pywintypes.datetime(2018, 7, 30, 0, 0, tzinfo=TimeZoneInfo('GMT Standard Time', True))]

我正在使用 python v3.6

标签: python-3.xpandas

解决方案


我找到了自己问题的答案。关键在于从 中删除时间信息date_quote[],只留下日期信息。

for x in range(0,int(num_elements)):
    date_quote[x] = date_quote[x].date()

删除时间信息后,分配工作不会出错。


推荐阅读