我想在一个dataframe中计算增量时间(有一些条件),所以我编写了一个循环:
for i in range(1,len(df.index)):
if df.type[i] == df.type[i-1]:
df.delta[i]=df.time[i]-df.time[i-1]
else:
df.delta[i]= ''但它似乎不是很优化,因为它很长,我得到了一个SettingWithCopyWarning (我不明白)。做这样的计算最好的方法是什么?
发布于 2018-07-03 08:43:44
我的方法是使用pandas.apply()
type_prev = ''
time_prev = 0
def lambda_func(row):
global type_prev
global time_prev
if row['type'] == time_prev:
time_diff = row['time'] - time_prev
else:
time_diff = ''
time_prev = row['time']
type_prev = row['type']
return time_diff
df['delta'] = df.apply(lambda_func)https://stackoverflow.com/questions/51150059
复制相似问题