2017-12-27 300 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切片比较获得的布尔