我知道还有其他问题有相同的错误名称,但它们都没有匹配np.where语句,而且我也找不到我的问题的答案 < / p>
所以我制作了一个名为DataFrame
的大熊猫data
并创建了一个名为Series
的{{1}},其中包括:
dates
我需要清除一些日期,因为它们与dates= pd.to_datetime(pd.to_timedelta(data.a_date, unit= 'D') + pd.datetime(1960,1,1),
errors= 'coerse')
中的指标不匹配,所以我尝试在使用data
保持索引正确的同时进行调整,
但我得到了这个错误:
numpy.where
答案 0 :(得分:3)
如果您想保留日期类型,请将string input = "[[string 1]] - [[string 2]] : [[string 3]]";
var parts = Regex.Matches(input, @"\[\[.+?\]\]").Cast<Match>().Select(x => x.Value)
.ToArray();
替换为np.nan
:
np.datetime64('NaT')
答案 1 :(得分:1)
np.where(cond, x, y)
的文档说第二个和第三个参数--x和y - 需要是array或array_like。另外,我相信x和y必须具有相同的形状。
你的x是标量(np.nan
),y是一个array_like对象(dates
)。也许这就是问题所在。
答案 2 :(得分:1)
我遇到了类似的问题,并设法通过从索引中获取date
属性来修复它,即这有效:
np.where(condition, df.x, df.index.date)
这不起作用:
np.where(condition, df.x, df.index)
当索引有dtype='datetime64[ns]'
希望有所帮助!