【问题标题】:How to find the average speed?如何找到平均速度?
【发布时间】:2021-11-16 18:56:12
【问题描述】:

我想计算每个 ID 的平均速度,我使用了这个代码

df_Speed=df2.groupby('ID').agg(Total_Speed=('speed Km/h', 'sum'),Total_steps=('ID', 'count')).reset_index()
df_Speed['Avg_Speed']=df_Speed['Total_Speed']/df_Speed['Total_steps']

df_Speed.head()

但我得到 inf 作为速度!

ID       Total_Speed          Total_schritte    Avg_Speed
1817603  2199.422386          149               14.761224
1817615  inf                  1178              inf
1817679  inf                  452               inf
1817888  5436.540730          271               20.061036

我怎样才能得到速度而不是这个 inf

【问题讨论】:

  • 您是如何获得Total_speed 列的? inf/something=inf 很符合逻辑。
  • 我对每个 ID 的每一步都有速度,正如你在代码中看到的那样,我使用 sum 来计算 Total_Speed

标签: python pandas dataframe average data-analysis


【解决方案1】:

您正在读取数据,它以某种方式创造了无穷大。如您所知,无穷大除以某个常数仍然是无穷大。

要解决此问题,您可能需要调整数据,或用平均值填充无穷大。

import numpy as np
# Replace inf with nan
df['Total_Speed'].replace([np.inf, -np.inf], np.nan, inplace=True)
# Replace nan with mean
df['Total_Speed'].fillna(df['Total_Speed'].mean())

来源:Dropping infinite values from dataframes in pandas?

【讨论】:

  • 谢谢,这很有帮助,即使我认为我们不会获得真正的价值,但可以解决我想要的......:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
相关资源
最近更新 更多