【问题标题】:convert a Numpy Array to datetime.date pandas DataFrame将 Numpy 数组转换为 datetime.date pandas DataFrame
【发布时间】:2018-05-18 12:34:56
【问题描述】:

我有一个numpy.ndarray 值是pandas._libs.tslib.Timestamp

例子:

在:type(closedDate)

输出:numpy.ndarray

在:type(closedDate[0])

输出:pandas._libs.tslib.Timestamp

我想将closedDate的内容转换成datetime.date的列表

我尝试了以下方法:

for i in closedDate:
    closedDate[i].to_datetime()

但是得到这个错误:

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

怎么办? :/

【问题讨论】:

  • closedDate 是一个 numpy 数组而不是 pandas df 所以closedDate.values 会引发一个错误 @Ami Tavory 也存在这个问题首先涉及 pandas df,而我的是一个 numpy 数组,所以它不是重复的:P
  • pd.to_datetime(closedDate, unit='s')
  • ValueError: non convertible value 2017-09-25 14:39:00with the unit 's' 我收到此错误@Ami Tavory
  • 如果您在问题中发布输入示例,将会有所帮助。
  • 只是为了解决您的错误消息(这与您的类型转换没有任何关系):您混合了对索引的迭代和对元素的迭代。 for cd in closedDate: cd.to_datetime()for i in range(len(closedDate)): closedDate[i].to_datetime()。然而,这些循环没有一个是有意义的,因为这些值没有保存在一个列表或任何地方,只是一无所获。此外:最好用我在 Python 中真正链接的一件事来编写这样的循环:for i, cd in enumerate(closedDate): ... - 这为您提供了循环中的元素和索引。

标签: python pandas python-datetime


【解决方案1】:
[x.to_pydatetime().date() for x in closedDate]

但是请注意,您可能犯了某种错误,最终得到一个包含 pandas 数据类型的 numpy 数组。 pandas Series 和 DataFrames 比 numpy 数组更适合处理 pandas 特定的类型。

【讨论】:

    【解决方案2】:

    我希望 numpy 能够通过 astype 提供此功能,因此您甚至不必显式地循环遍历数组:

    dt_arr = closedDate.astype(np.datetime64)
    

    检查:

    closedDate
    Out: 
    array([Timestamp('2017-09-25 14:39:00'), Timestamp('2017-09-26 14:39:00'),
       Timestamp('2017-09-27 14:39:00')], dtype=object)
    
    type(closedDate)
    Out: numpy.ndarray
    
    type(closedDate[0])
    Out: pandas._libs.tslib.Timestamp
    
    type(dt_arr)
    Out: numpy.ndarray
    
    type(dt_arr[0])
    Out: numpy.datetime64
    

    【讨论】:

      猜你喜欢
      • 2019-08-04
      • 2020-02-10
      • 2020-08-20
      • 1970-01-01
      • 2018-12-27
      • 2020-07-12
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多