2017-12-27 298 views
0

我正在處理包含每個美國州和州的人口統計數據的數據幀。在字符串類型單元格的右側字符不匹配條件下拖放熊貓df中的行

FIPS State Area_Name CENSUS_2010_POP ESTIMATES_BASE_2010 ... 
01000 AL Alabama   4779736   4780131    ...  
01001 AL Autauga County 54571   54571    ...  
01003 AL Baldwin County 182265   182265    ... 
01005 AL Barbour County 27457   27457    ... 

...  ... ...    ...    ...     ... 

我想放棄有關縣的所有行,以保留只有關於美國各州的行(這是很多行確實下降!)。 我的想法是專注於FIPS列並只保留以'000'結尾的FIPS,這些對應於狀態。 轉換FIPS成字符串後,我試過如下:

for k in df.index: 
    if df.iloc[k,0][-3:] != '000': 
     df=df.drop(df.index[k]) 

我收到以下錯誤:single positional indexer is out-of-bounds

回答

0

選擇基於布爾索引的行,即

df[df['FIPS'].astype(str).str[-3:] == '000'] 


    FIPS State Area_Name CENSUS_2010_POP ESTIMATES_BASE_2010 ... 
0 1000 AL Alabama   4779736    4780131 ... 
通過 str切片比較獲得的布爾