问题描述
对不起,我缺乏熊猫和约会功能。我已经尝试过,但是似乎有些东西超出了我目前有限的技能范围。
我正在使用键入日期为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 (将#修改为@)