我有一个个人(print("{}: {:.0f}".format(str(number).zfill(dig), val))
)的第一个数据框,该数据框在df_id
输入数据,然后在start_time
退出数据。
我有另一个数据帧(end_time
),它在每个时间点都为我提供了变量df_time
的值。
我想在x
中创建一个新变量,该变量将为我提供每个人从开始到结束时间的平均df_id
。
我只能通过逐个循环来完成此操作,这需要很长时间。有更快的方法吗?
这是我尝试过的:
x
非常感谢!
答案 0 :(得分:0)
使用apply()代替迭代。这样会将运行时间减少一半
import pandas as pd
df_id = pd.DataFrame({'id':[1, 2, 3], 'start_time':[1, 2, 4], 'end_time':[2, 4, 5]})
df_time = pd.DataFrame({'time': list(range(1,6)), 'x': [2,2,4,5,3]})
df_id['mean_x'] = df_id.apply(lambda row: df_time['x'][row['start_time']-1:row['end_time']].mean(), axis=1)