[英]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.