2017-01-11 57 views
2

我與來自美國人口普查這個數據,我導入到數據幀的工作,它看起來像這樣:Avoind重新索引在大熊貓數據幀

enter image description here

我需要確定與更多國家的狀態,即我需要計算具有相同STNAME的CTYNAME列中的元素數量。但是,如果不重新編制索引數據框(或創建新的數據框),我無法做到這一點,這一點我覺得無用。我怎樣才能提高我的解決方案:

census_df.set_index(['STNAME','CTYNAME']).count(level=0)['SUMLEV'].argmax()

+2

怎麼樣'census_df。 GROUPBY( 'STNAME')[ 'CTYNAME']。大小()。nlargest(1)'? – IanS

+0

@IanS這很好。但是,我不明白什麼是groupby對象。這是不是也創建了一個與數據幀大小相同的對象,因此效率低下?另外,我不知道最大的功能 - 非常有用! – cinico

+0

這裏'groupby'會創建一個新的對象,但它只有與狀態一樣多的行,以及一列。說實話,我認爲你的解決方案並不是那麼糟糕,儘管這可能不是大多數熊貓用戶會這樣做的方式。 – IanS

回答

3

正如在評論中討論,這將是做的更自然的方式,並可能是更有效的:

census_df.groupby('STNAME')['CTYNAME'].size().nlargest(1)