【问题标题】:Using np.select in DateTime series - Pandas Python在 DateTime 系列中使用 np.select - Pandas Python
【发布时间】:2021-09-13 22:46:08
【问题描述】:

我在 DateTime 系列中使用 np.select 时遇到问题。 假设你有一个 DataFrame: dateframe['id','FLOAT','DATE1','DATE2']

dateframe['DATE1'] = dt.datetime.now()
dateframe['DATE2'] = dt.datetime.now()

dateframe['DATE3'] = np.select(
    [
        dateframe['FLOAT']>0,
        dateframe['FLOAT']<=0,
    ],
    [
        dateframe['DATE1'],
        dateframe['DATE2'],
    ]
)

我收到此错误:

TypeError:DTypes 没有共同的 DType。例如,除非 dtype 为 object,否则它们不能存储在单个数组中。

提前致谢。

【问题讨论】:

标签: python pandas dataframe numpy datetime


【解决方案1】:

当您有一个条件恰好创建两个互斥组时,请使用 np.where

dataframe['DATE1'] = dt.datetime.now()
dataframe['DATE2'] = dt.datetime.now()
dataframe['DATE3'] = np.where(dataframe['FLOAT']>0,dataframe['DATE1'],dataframe['DATE2'])
dataframe

关于np.select 的错误。最初将日期存储为带有str() 的对象数据类型,然后再转换to_datetime()。根据错误,np.select 语句中的日期时间数据类型存在问题

dataframe['DATE1'] = str(dt.datetime.now())
dataframe['DATE2'] = str(dt.datetime.now())
dataframe['DATE3'] = pd.to_datetime(np.select([(dataframe['FLOAT']>0),(dataframe['FLOAT']<=0)],
                                              [dataframe['DATE1'],dataframe['DATE2']]))
dataframe

【讨论】:

  • 非常感谢。有效。我已经寻找这个答案好几个星期了。
  • 来自秘鲁利马的问候。
猜你喜欢
  • 2023-04-05
  • 2015-03-23
  • 2020-12-24
  • 2016-05-21
  • 2021-05-07
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多