不用客气
想实现如果标识列为‘推迟’的话,则生成‘天数’列里面天数列用固定日期‘2020-10-31’减去time列的日期生成的天数再加1天的天数差,否则天数列的值为0,请问如何实现
新建 Microsoft Excel 工作表 (3).xlsx
(pd.Timestamp("2020-10-31")-x["time"])两个timestamp对象相减是一个时间差对象也就是timedelta对象
data["计算列1"]=data.apply(lambda x: (pd.Timestamp("2020-10-31")-x["time"]).components.days+1 if x["标识"]=="推迟" else 0,axis=1)这句里面的components.days是什么意思
data["计算列1"]=data.apply(lambda x: (pd.Timestamp("2020-10-31")-x["time"]).components.days+1 if x["标识"]=="推迟" else 0,axis=1)这句里面的components.days是什么意思
import pandas as pd
data=pd.read_excel("D:\\360安全浏览器下载\\1604563522_368980.xlsx")
data["计算列1"]=data.apply(lambda x: (pd.Timestamp("2020-10-31")-x["time"]).components.days+1 if x["标识"]=="推迟" else 0,axis=1)
算出来的列类型是pd.Timedelta,实际上可以视为时间戳,可以通过其他方式转换为数值
import pandas as pd import datetime delay_time = datetime.datetime.strptime('2020-10-31', '%Y-%m-%d') df =pd.read_excel("C:\\Users\\Administrator\\Downloads\\1604563522_368980.xlsx") df['time'] = pd.to_datetime(df['time'], unit='d') df.loc[df['标识']=='推迟','天数_py'] = delay_time + datetime.timedelta(days=1) - df.loc[df['标识']=='推迟','time'] df.loc[df['标识']!='推迟','天数_py'] = pd.Timedelta(seconds=0)
各位大佬们,想咨询一下大家有没有遇到过这个问题。python连接oracle数据库时出现无监听程序错误,报错如下的,应该怎么搞定呀