我不确定下面的代码在哪里出了问题,我在其中使用了两个for循环来首先迭代statename,然后迭代每个包含该特定statename的字典。
我终于通过我的第二个代码(在片段上正确的代码)解决了这个问题,但是我很想知道为什么第一个不起作用。
使用的文件是人口普查文件,其中以州名,县名(州的一个分区)和人口为列。
无法与以下错误(左侧为“字符串索引必须为整数”)一起使用:
答案 0 :(得分:0)
不知道为什么图片不出来...抱歉第一次来这里!
我尝试过的第一个有疑问的代码是:(关于字符串索引必须是整数):
state_unique=census_df['STNAME'].unique()
list=[]
def answer_five():
for c in state_unique:
count=0
for d in census_df:
if d['STNAME']==c:
count+=1
return list.append(count)
answer_five()
第二个有助于解决我的问题的代码是:
max_county=[]
state_unique=census_df['STNAME'].unique()
def answer_five():
for c in state_unique:
df1=census_df[census_df['STNAME']==c]
max_county.append(len(df1))
return max(max_county)
answer_five()
答案 1 :(得分:0)
正如其他人已经建议的那样,请仔细阅读提供Minimal, Reproducible Example的内容。不过,我可以看到这里出了什么问题。当您遍历US/Eastern
时,实际上会遍历数据框的列名,即for d in census_df
,SUMLEV
等。大概不是您想的那样。
然后,如消息所示,下一行REGION
会导致错误,因为字符串索引必须是整数。在这种情况下,您尝试使用另一个字符串if d['STNAME']==c
为一个字符串编制索引。
如果您确实希望第一种方法有效,请尝试使用STNAME
:
iterrows