从熊猫数据框日期栏中减去一天

问题描述

对不起,我缺乏熊猫和约会功能。我已经尝试过,但是似乎有些东西超出了我目前有限的技能范围。

我正在使用键入日期为datetime64 [ns]的日期列(FinalStartPunch),如果“小时”为0,则从datetime64 [ns]列(日期)中减去一天。如果FinalStartPunch小时不是0,则只需照原样复制日期列值即可。

样本数据:

date         FinalStartPunch
6/27/2015   27JUN2015:14:15:00
7/23/2015   23JUL2015:13:31:00
7/23/2015   23JUL2015:18:43:00
8/15/2015   15AUG2015:18:35:00
8/15/2015   15AUG2015:23:30:00
8/16/2015   16AUG2015:00:00:00
1/30/2016   30JAN2016:18:25:00
1/30/2016   30JAN2016:23:52:00
1/31/2016   31JAN2016:00:00:00
8/13/2016   13AUG2016:18:30:00
8/13/2016   13AUG2016:23:58:00
8/14/2016   14AUG2016:00:00:00
1/28/2017   28JAN2017:18:30:00
1/28/2017   28JAN2017:23:57:00
1/29/2017   29JAN2017:00:00:00

关键代码部分:

df['New'] = df['date'] - pd.Timedelta(1,unit='D')  ### This one works
print(df.dtypes)

conds = [df['FinalStartPunch'].dt.hour == 0,df['FinalStartPunch'].dt.hour > 0]

choices = [df['date'] - pd.Timedelta(1,unit='D'),df['date']]

df['Date1'] = np.select(conds,choices,default=0)

错误:无效的类型升级

df ['New']在选项行中使用相同的代码,这似乎是导致错误的问题。

也许是个脾气暴躁的问题,我需要采用其他方法来做到这一点吗?

任何帮助-非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)