代码之家  ›  专栏  ›  技术社区  ›  E. Erfan

聚合函数在打印时起作用,但将其赋给值时会出错

  •  0
  • E. Erfan  · 技术社区  · 5 年前

    我在一个数据集上应用一些简单的统计数据。我读过熊猫的资料。我想计算每个州的县数。我已经将state作为我的数据帧的索引,并通过使用索引的唯一值和计算县来循环遍历它。当我打印循环中的值时,它会给出一个结果,后跟一个错误“count()至少接受1个参数(0给定)”,但当我赋值count()时,它会引发“count()至少接受1个参数(0给定)”。

    df_aux = census_df[census_df['SUMLEV']==50]
    df_aux.set_index('STNAME', inplace=True)
    index_list = df_aux3.index.unique().tolist()
    

    索引列表是所有状态的列表。我使用它在辅助数据帧中循环,如下所示:

    county_list = []
    state_list = []
    for item in index_list:
        df_aux3.loc[item,'CTYNAME'].count()
        county_num = df_aux3.loc[item,'CTYNAME'].count()
        county_list.append(county_num)
        state_list.append(item)
    dict_aux={'State':state_list,
             'county_num': county_list}
    

    线路

    df_aux3.loc[item,'CTYNAME'].count()
    

    导致以下错误:

    TypeError: count() takes at least 1 argument (0 given)
    

    for item in index_list:
        print(df_aux3.loc[item, 'CTYNAME'].count()) 
    

    dfèu aux3数据帧如图所示: image of data frame

    printing count()所显示的结果(原则上是正确的)以及引发的错误如下所示:

    esult of applying print to count()

    df_aux3.loc['Alabama', 'CTYNAME'].count() 
    

    它工作得非常好,没有错误!我不明白它的行为。 我想知道是不是因为懒惰的评估。如果这是为什么它是这样的行为,我怎么能修复它?

    0 回复  |  直到 5 年前