【发布时间】:2023-03-10 20:10:01
【问题描述】:
我有一个 DataFrame,其中包含数千辆汽车的列表。每辆车都有一个起始年份列和一个结束年份列,代表汽车流通的年份间隔。每辆车还有一个全时段的平均油耗列,如下所示:
df_cars
+-----+------------+----------+--------------------------+
| Car | Start year | End year | Average fuel consumption |
+-----+------------+----------+--------------------------+
| 1 | 2002 | 2025 | 10.0 |
+-----+------------+----------+--------------------------+
| 2 | 1995 | 2008 | 12.5 |
+-----+------------+----------+--------------------------+
| 3 | 2005 | 2017 | 8.5 |
+-----+------------+----------+--------------------------+
在 2000 年到 2015 年期间,我想获得每年运营的车队“Y”的平均油耗。因此,如果汽车的起始年份 Y,则应将其包含在该给定年份的车队平均值中。显然,大多数汽车平均会出现在车队中几年。
到目前为止,我正在循环,但速度很慢。
for y in range(2000, 2015):
df_cars[(df_cars["Start year"]<=int(y))&(df_cars["End year"]>=int(y))]["Average fuel consumption"].mean(axis=0)
有更快的方法吗? 谢谢。
【问题讨论】: