为什么在使用 value_counts() 和 shape[0] 时会显示 2 个不同的长度?
Why are 2 different lengths are showing when using value_counts() and shape[0]?
我想知道有多少条记录,我认为有两种方法可以显示记录总数。但是,它们显示的长度不同,为什么会这样?
我在下面列出了两种方式,进一步详细说明一行具有 .shape[0] 属性,而另一行具有 .value_counts() 属性
df.loc[(df['rental_store_city'] == 'Woodridge') & (df['film_rental_duration'] > 5)].shape[0]
output: 3186
df.loc[(df['rental_store_city'] == 'Woodridge') & (df['film_rental_duration'] > 5)].value_counts()
output image that shows length of 3153
这是因为 value_counts
按重复项分组并计算它们的数量,并删除多余的重复项,这样会使数据帧更短。
如您在 documentation 中所见:
Return a Series containing counts of unique rows in the DataFrame.
示例:
>>> df = pd.DataFrame({'a': [1, 2, 1, 3]})
>>> df
a
0 1
1 2
2 1
3 3
>>> df.value_counts()
a
1 2
3 1
2 1
dtype: int64
>>>
如您所见,重复项使代码数据帧更短。
如果你想得到数据帧的长度不要使用value_counts
,使用len
:
len(df.loc[(df['rental_store_city'] == 'Woodridge') & (df['film_rental_duration'] > 5)])
我想知道有多少条记录,我认为有两种方法可以显示记录总数。但是,它们显示的长度不同,为什么会这样?
我在下面列出了两种方式,进一步详细说明一行具有 .shape[0] 属性,而另一行具有 .value_counts() 属性
df.loc[(df['rental_store_city'] == 'Woodridge') & (df['film_rental_duration'] > 5)].shape[0]
output: 3186
df.loc[(df['rental_store_city'] == 'Woodridge') & (df['film_rental_duration'] > 5)].value_counts()
output image that shows length of 3153
这是因为 value_counts
按重复项分组并计算它们的数量,并删除多余的重复项,这样会使数据帧更短。
如您在 documentation 中所见:
Return a Series containing counts of unique rows in the DataFrame.
示例:
>>> df = pd.DataFrame({'a': [1, 2, 1, 3]})
>>> df
a
0 1
1 2
2 1
3 3
>>> df.value_counts()
a
1 2
3 1
2 1
dtype: int64
>>>
如您所见,重复项使代码数据帧更短。
如果你想得到数据帧的长度不要使用value_counts
,使用len
:
len(df.loc[(df['rental_store_city'] == 'Woodridge') & (df['film_rental_duration'] > 5)])