[英]Calculate %CV for 2 pandas dataframes (or just standard deviation and mean)
[英]Pandas calculate manually for mean or standard deviation
除了最小值和最大值之外,我們還需要 Kilometers_Driven 在不同位置的均值和方差。 使用迭代方法,執行以下操作:
查找數據集中的所有唯一位置。
啟動計時器。
對於唯一位置,遍歷數據集一次以計算 Kilometers_Driven 的平均值。
對於相同的唯一位置,再次遍歷數據集以計算 Kilometers_Driven 的方差。
8.5 對所有獨特的位置重復。 迭代地,計算不同位置的 Kilometers_Driven 的均值和方差。 測量所需的時間。
停止計時器。 打印出每個位置的 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 中提問。 任何人都可以幫助我嗎? 提前致謝!!
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) )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.