仅当EndTime - StartTime
为1000时,我才想减去channel
像这样:df.loc[df['Channel'] == 1000]['X channel view time']=df['EndTime']-df['StartTime']
这应该是最快的,但似乎不起作用
def watch_time(row,channel):
val=0
if row['Channel']==channel:
val=row['EndTime']-row['StartTime']
return val
df['BTV_view_time'] = df.apply(watch_time,args=250,axis=1)
但这要慢很多吗?
答案 0 :(得分:1)
您可以对所有行执行此操作,然后用0
替换不符合过滤条件的行:
df['X channel view time'] = df['EndTime'] - df['StartTime']
df.loc[df['Channel'] == 1000, 'X channel view time'] = 0
答案 1 :(得分:1)
你还没那么远。语法是:
NameError: name 'add' is not defined
答案 2 :(得分:1)
您可以尝试这样的事情:
Object interfaceLoadedDynamically = Class.forName(i.getName());
答案 3 :(得分:0)
请注意,您正在使用df的一部分,这就是为什么它不起作用的原因,您可以执行以下操作:
smaller_df = df[df['Channel'] == 1000]['EndTime']-df[df['Channel'] == 1000]['StartTime']
您还可以创建一个新列:
df['subtraction'] = [0]*len(df)
df['subtraction'] = df[df['Channel'] == 1000]['EndTime']-df[df['Channel'] == 1000]['StartTime']
如果“频道”与1000不同,请将[0]*len(df)
替换为您想要的内容