删除行中的值,Pandas DataFrame

Remove values in rows, Pandas DataFrame

我正在尝试“删除”一些行。这是我的代码

popcoun = census_df.copy()
popcoun = popcoun[popcoun['SUMLEV'] == 50]
popcoun = popcoun[['STNAME','CTYNAME','CENSUS2010POP']]
popcoun = popcoun.set_index(['STNAME','CTYNAME'])
popcoun = popcoun.sort_values(by = ['STNAME','CENSUS2010POP'],ascending = False)

Visualice table

在上一张图片中link,你可以观察到信息是排序的,所以,例如,在 Wioming 索引中,我只想要 CENSUS2010POP 的前三行(这是最高值在那种状态下),也适用于我拥有的其他状态。 谢谢,我希望有人能帮助我

添加这个-

popcoun = popcoun.groupby(['STNAME']).head(3)

只要按照您上面提到的那样为每个组对行进行排序,这就应该有效。

如果您只想 select table 的前 3 行,您可以

df.iloc[:4]

对于每个状态,您可以遍历 df["state"].unique() 并执行 df.loc[df.state == state][:4]

对不起,如果我误解了。这有帮助吗?

不管排序...这适用于 .groupby.nlargest

popcoun = popcoun.groupby(['STNAME']).apply(lambda x: x.nlargest(3, 'CENSUS2010POP'))[['CITYNAME', 'CENSUS2010POP']]