熊猫:无法进行位置索引

Posted

技术标签:

【中文标题】熊猫:无法进行位置索引【英文标题】:Pandas: Cannot do positional indexing 【发布时间】:2020-09-01 14:55:32 【问题描述】:

使用美国人口普查局的人口普查数据。县是美国各州的政治和地理分区。此数据集包含 2010 年至 2015 年美国各县和州的人口数据。

    cdf = pd.read_csv('census.csv')
    cdf = cdf[cdf['SUMLEV']==50]
    cdf.head()
    def answer_five():
        count = pd.DataFrame(cdf['STNAME'].unique(), columns =["State"])
        count['ct'] = 0
        i=0
        for item in cdf['STNAME']:
            if(item == count.iloc(i)['State']):
                count.iloc(i)['ct'] += 1
            else:
                i=i+1
        return count['State'] == count['State', np.max(count['ct'])]
    answer_five()

有人可以帮我找出嵌套在 for 循环中的 if else 语句中的错误吗? 我想在不使用 groupby 的情况下解决它

【问题讨论】:

你应该看看Series.value_counts。无需手动执行此操作。 您可以添加并突出显示所需的输出。它将帮助其他人回答这个问题。 【参考方案1】:

pandas 中的 iloc 函数使用括号来获取实际值。不是括号。应该是:

if(item == count.iloc[i]['State']):
            count.iloc[i]['ct'] += 1

【讨论】:

以上是关于熊猫:无法进行位置索引的主要内容,如果未能解决你的问题,请参考以下文章

单个位置索引器越界遍历熊猫数据框

对索引熊猫系列进行排序时出错

通过某些(索引)参数将值插入熊猫数据框中“适当”位置的最佳方法是啥?

无法在熊猫数据框中按时间戳索引

将索引转换为日期时间对象后,MatplotLib 无法正确绘制熊猫时间序列 1 分钟数据

熊猫使用多索引选择第二个索引的最后一行