gpt4 book ai didi

python - 为什么pandas value_counts() 显示某些值的计数为零?

转载 作者:行者123 更新时间:2023-12-03 19:19:10 26 4
gpt4 key购买 nike

我有一个数据框,其中一列是带有以下标签的分类变量:['Short', 'Medium', 'Long', 'Very Long', 'Extremely Long'] .我正在尝试创建一个新的数据框,它删除所有 Extremely Long 的行.

我尝试通过以下方式做到这一点:

df2 = df.query('ride_type != "Extremely Long"')
df2 = df[df['ride_type'] != 'Extremely Long']

但是,当我运行 .value_counts() 时,我得到以下信息:
df2.ride_type.value_counts()
>>> Short 130474
Long 129701
Medium 129607
Very Long 110988
Extremely Long 0
Name: ride_type, dtype: int64

换句话说, Extremely Long仍然存在,所以我不能只用我想要的四个类别来绘制图表。

最佳答案

这是分类数据的一个特征。你可能有这样的东西:

df = pd.DataFrame({'ride_type': pd.Categorical(
['Long', 'Long'], categories=['Long', 'Short'])})

df
ride_type
0 Long
1 Long

调用 value_counts在分类列上将记录所有类别的计数,而不仅仅是存在的类别。
df['ride_type'].value_counts()    

Long 2
Short 0
Name: ride_type, dtype: int64

解决方案是删除未使用的类别,或转换为字符串:
df['ride_type'].cat.remove_unused_categories().value_counts() 

Long 2
Name: ride_type, dtype: int64

# or,
df['ride_type'].astype(str).value_counts()

Long 2
Name: ride_type, dtype: int64

关于python - 为什么pandas value_counts() 显示某些值的计数为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62090972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com