[英]New column value based on two timestamp columns in df
我正在使用下面的代码对df中的列使用if语句来产生值
def time_delta(df):
if df['a_time'] > df['b_time']:
res = 'Early'
else:
res = 'Late'
return res
有没有更好或更有效的方式对此进行编码?
基本上,我希望基于两个时间列之间的关系创建一个值为Early或Late的新列。
谢谢!
您可以使用以下方法创建新列。
df['new_col'] = 'Late'
df.loc[df['a_time'] > df['b_time'], 'new_col'] = 'Early'
或使用np.where
df['new_col'] = np.where(df['a_time'] > df['b_time'], 'Early', 'Late')
但是,第一种方法是使用熊猫的方法。
你可以做:
例
df=pd.DataFrame()
df['value']=0
df['a_time']=[1,2,3]
df['b_time']=[3,0,1]
cond=df['a_time']>df['b_time']
df['value']=df['value'].mask(cond,'Early').mask(~cond,'Late')
输出:
df
value a_time b_time
0 Late 1 3
1 Early 2 0
2 Early 3 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.