我正在处理以前所有美国参议员的一些数据。我想用图表说明各种任期长度的频率,按民主党人,共和党人,辉格党,联邦党人和民主共和党人的政党分开。我已经绘制了剧情,但是很难让它每年给我提供信息,所以我想按6年的时间缩减采样率。如果这是一个简单的直方图,我将减少bin的数量,但是由于是条形图,因此当我尝试将AttributeError: Unknown property bins
指定为参数时得到bins
。
我想要这样但不太细的东西:
def tenure_count(frame, party):
return frame[frame.party == party].tenure.value_counts().reindex(
[x for x in range(0, 52) if x % 1 == 0], fill_value=0)
df = pd.read_csv("congress_tenure.csv", header=0)
df = df[['tenure', 'party']].sort_values('tenure')
parties = ['Democrat', 'Republican', 'Democratic-Republican', 'Whig', 'Federalist']
counts = pd.DataFrame(
np.column_stack(
[tenure_count(df, x) for x in parties]
)
)
counts.columns = parties
counts.index.name = 'tenure'
counts.plot(kind='bar')
plt.show()
counts
DataFrame如下:
Democrat Republican Democratic-Republican Whig Federalist
tenure
0 63 25 7 0 6
1 82 59 19 9 8
2 52 21 12 3 11
3 36 17 15 3 14
4 40 20 11 6 9
5 39 37 10 4 5
... ... ... ... ... ...
答案 0 :(得分:1)
您可以使用方法here对数据进行装箱。您只需要确定要使用这些值:和,平均值等即可。它看起来像这样:
binned = counts.groupby(counts.index // 6).sum()
binned.plot.bar()