Python函数可计算城市的年降雨量

时间:2019-02-19 09:30:55

标签: python dictionary tuples

我们有一个城市的年度降雨记录清单。列表中的每个元素都具有(c,r)形式,其中c是城市,r是特定年份的年降雨量。该列表可能包含同一城市的多个条目,对应于不同年份的降雨记录。

编写一个Python函数rainaverage(l),该函数将降雨记录列表作为输入,并计算每个城市的平均降雨量。输出应为成对(c,ar)的列表,其中c是城市,ar是输入列表中记录中该城市的平均降雨量。注意ar应该是float类型。输出应相对于城市名称按字典顺序排序。

下面是一些示例来说明Rainaverage(l)应该如何工作。

  
    
      

rainaverage([[(1,2),(1,3),(2,3),(1,1),(3,8)])       [(1,2.0),(2,3.0),(3,8.0)]

             

rainaverage([('Bombay',848),('Madras',103),('Bombay',923),('Bangalore',201),('Madras',128)])       [(''Bangalore',201.0),('Bombay',885.5),('Madras',115.5)]

    
  

1 个答案:

答案 0 :(得分:1)

您可以使用pandas来做到这一点:

import pandas as pd
l = [('Bombay',848),('Madras',103),('Bombay',923),('Bangalore',201),('Madras',128)]
df = pd.DataFrame(l, columns=['city', 'rainfall'])

output = []
for c in df['city'].unique():
    output += [(c, df[df['city'] == c]['rainfall'].mean())]

print(output)