簡體   English   中英

計算 CSV 中的平均溫度

[英]Calculate average temperature in CSV

下面是我的數據集。

我想計算每個站點的平均溫度。 如果我可以刪除零(噪聲)數據,那就更理想了。

我該怎么做? 在此處輸入圖像描述

我不知道如何開始。

我認為您可以使用標准的 csv 閱讀器遍歷行,將所有溫度收集到列表t並執行類似sum(t) / len(t)的操作

只需將數據轉換為pandas.DataFrame並使用pandas.DataFrame.groupby方法:

import pandas as pd

file = #your csv file
df = pd.read_csv(file)
df = df.drop(df[df['temp'] == 0].index)

print(df.groupby('ID')[['temp']].mean())

給出:

    temp
ID      
1   20.5
2   32.1
3   14.4

注意:我使用的文件看起來像...

ID,stuff,temp
1,3,20
1,6,20.1
1,7,21.4
2,1,30.2
2,3,0
2,2,34
3,7,0
3,6,0
3,2,14.4

如果想將該數據轉換為一列,您可以創建一個字典並使用它來“替換”(但不是真的)DataFrame 中的新列:

mean = df.groupby('ID')[['temp']].mean() # Store this into a variable

groups = {}

for i in mean.itertuples(): # Iterate over the values
    groups[i[0]] = i[1]
    
df['avg_temp'] = df['ID'].replace(groups) # Create a new column

print(df)

給出:

   ID  stuff  temp  avg_temp
0   1      3  20.0      20.5
1   1      6  20.1      20.5
2   1      7  21.4      20.5
3   2      1  30.2      32.1
5   2      2  34.0      32.1
8   3      2  14.4      14.4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM