我想找到平均总收入最高的州,并能够看到1992-2016年所有州的平均总收入最高的州(第40-45位),第35-40位(最高)的州。
数据组织在下图中的数据框中。因此,理想情况下,我可以有另一列如下所示。我想这就是我要做的。
STATE // YEAR // TOTAL_REVENUE // AVG_TOTAL_REVENUE
ALABAMA // 1992 // 5000 // 6059
ALABAMA // 1993 // 4000 // 6059
ALASKA // 1992 // 3000 // 2059
ALABAMA // 1996 // 6019 // 6059
Run Code Online (Sandbox Code Playgroud)
这可能吗?我不确定我是否要说出我想正确做的事情,也不确定我在寻找谷歌明智的方法以找出前进的方向。
假设您的输入如下所示:
STATE YEAR TOTAL_REVENUE
Michigan 2001 1000
Michigan 2002 2000
California 2003 3000
California 2004 4000
Michigan 2005 5000
Run Code Online (Sandbox Code Playgroud)
然后做:
df['AVG_TOTAL_REVENUE'] = np.nan
states = df['STATE'].tolist()
states = list(set(states))
for state in states:
state_values = df[df['STATE'] == state]
revenues = state_values['TOTAL_REVENUE'].tolist()
revenues = [float(x) for x in revenues]
avg = sum(revenues)/len(revenues)
df['AVG_TOTAL_REVENUE'].loc[state_values.index] = avg
Run Code Online (Sandbox Code Playgroud)
这给你:
STATE YEAR TOTAL_REVENUE AVG_TOTAL_REVENUE
0 Michigan 2001 1000 2666.666667
1 Michigan 2002 2000 2666.666667
2 California 2003 3000 3500.000000
3 California 2004 4000 3500.000000
4 Michigan 2005 5000 2666.666667
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |