我想用大熊猫 得到城市的状态下最大数量(“CTYNAME”)(“STNAME”)我有一个数据帧为什么我会得到KeyError异常在熊猫的Python
df_filtered = census_df.copy().filter(items=['SUMLEV','STNAME','CTYNAME'])
df_filtered = df_filtered.set_index(['STNAME'])
state_df['STNAME'] = df.index.tolist()
state_df['STNAME'] = state_df['STNAME'].drop_duplicates()
state_df = state_df['STNAME'].dropna()
state_df = pd.DataFrame(state_df)
state_df.set_index(['STNAME'])
for state in state_df:
state_df['COUNT'] = df.loc[state].count()
对于一些因为即使我将索引设置为州名('STNAME'),索引也是一堆整数而不是州名(即阿拉斯加州,犹他州等)。
当我尝试运行它给我一个关键错误
KeyError: 'the label [STNAME] is not in the [index]'
如何重复使用iterrows?我尝试着使用下一个(state_df.iterrows())[1],并且由于某种原因,它一直给我同样的记录“阿拉巴马州”。 –
当我打印(state_df)时,它显示左边的整数列表和右边的STNAME(州名) - 它们都是唯一的。我只是无法弄清楚如何迭代状态名... 另外我试着做(〜(next(state_df.iterrows())[1] .empty())):但是抛出了一个typeError “Bool”对象不可调用 –
我已更新我的答案。按照我的第一个示例所示,尝试迭代“STNAME”列。 – Lgiro