【问题标题】:Pandas calculate manually for mean or standard deviationPandas 手动计算均值或标准差
【发布时间】:2021-05-17 00:36:49
【问题描述】:

除了最小值和最大值,我们还需要均值和方差 公里数_驱动在不同的位置。使用迭代 方法,请执行以下操作:

找到数据集中所有唯一的位置。

启动计时器。

对于一个唯一的位置,遍历数据集一次来计算 Kilometers_Driven 的平均值。

对于相同的唯一位置,再次遍历数据集以 计算 Kilometers_Driven 的方差。

8.5 对所有唯一位置重复此操作。反复计算 不同位置的 Kilometers_Driven 的均值和方差。 测量所需的时间。

停止计时器。打印出均值和方差 每个位置的行驶公里数以及经过的时间。

我的代码如下:

#8.1
df.Location.unique()

#8.2
start = timeit.default_timer()

#8.3 Calculating mean of "Kilometers_Driven" manually (For a unique location?)
col_mean = 0.0
for row in range(len(df)):
    col_mean += df.loc[row, "Kilometers_Driven"]
col_mean /= len(df)
print(col_mean)

#8.4 Calculating variance of "Kilometers_Driven" manually
col_var = 0.0
for row in range(len(df)):
    col_var += (df.loc[row, "Kilometers_Driven"] - col_mean)**2
col_var /= len(df) - 1 
print(col_var)

#8.5 How to do?

#8.6 Setting Stop Time
stop = timeit.default_timer()

t_custom = stop - start

print(f"Time elapsed {t_custom} s")

它有效,但 对于一个独特的位置,遍历数据集一次以计算 Kilometers_Driven 的平均值。在 8.3 中。我只是手动计算“Kilometers_Driven”的平均值。我不知道如何纠正它。并且不确定如何在 8.5 中提问。任何人都可以帮助我吗?提前致谢!!

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:
    for l in list(df.Location.unique()): 
        col_mean = 0.0
    
        num_rows=0
        for row in range(len(df)):
            if df.loc[row, 'Location'] == l:
                  num_rows += 1
                  col_mean += df.loc[row, "Kilometers_Driven"]
        col_mean = col_mean/num_rows
    
        print( 'Location: %s mean %.2f' % (l, col_mean) )
    

    【讨论】:

    • 嘿!如何为所有独特的位置重复。迭代地,计算不同位置的 Kilometers_Driven 的均值和方差。测量所需的时间。
    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 2014-03-21
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多