聚合功能可在打印中使用,但在将其分配给值时会引发错误

时间:2018-12-27 14:29:19

标签: python pandas

我正在对数据集应用一些简单的统计信息。我看过熊猫的数据。我想计算每个州的县数。我已经将状态指定为数据框的索引,并通过使用索引的唯一值并计数县来遍历它。当我在循环中打印值时,会给我结果,然后出现错误“ 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()

index_list是所有状态的列表。我将其用于在辅助数据框中循环播放,如下所示:

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)

但是,当我在循环中使用print时,它会正确返回值并引发错误!通过使用print,我的意思是以下代码:

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

df_aux3数据帧如下所示: image of data frame

打印的count()原理显示的结果正确无误,并显示以下错误:

esult of applying print to count()

此外,当我使用

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

它运行良好,没有错误!我不了解它的行为。 我想知道是由于懒惰的评估。如果这就是为什么它会以这种方式运行以及我该如何解决?

非常感谢您的关注和支持。

0 个答案:

没有答案