我们有一个城市的年度降雨记录清单。列表中的每个元素都具有(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)]
答案 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)