gpt4 book ai didi

python - 在 PANDAS 中使用 value_counts() 出现次数/频率为零

转载 作者:太空狗 更新时间:2023-10-29 21:41:26 27 4
gpt4 key购买 nike

我有一个包含日期和每个日期售出的各种汽车的表格,格式如下(这些只是许多列中的 2 列):

DATE       CAR
2012/01/01 BMW
2012/01/01 Mercedes Benz
2012/01/01 BMW
2012/01/02 Volvo
2012/01/02 BMW
2012/01/03 Mercedes Benz
...
2012/09/01 BMW
2012/09/02 Volvo

我执行以下操作来查找每天销售的 BMW 汽车数量

df[df.CAR=='BMW']['DATE'].value_counts()

结果是这样的:

2012/07/04 15
2012/07/08 8
...
2012/01/02 1

但也有宝马车卖不出去的日子。结果,连同上述内容,我想要 BMW 出现次数为零的日子。因此,期望的结果是:

2012/07/04 15
2012/07/08 8
...
2012/01/02 1
2012/01/09 0
2012/08/11 0

我该怎么做才能获得这样的结果?

最佳答案

您可以在 value_counts 之后重新索引结果,并用 0 填充缺失值。

df.loc[df.CAR == 'BMW', 'DATE'].value_counts().reindex(
df.DATE.unique(), fill_value=0)

输出:

2012/01/01    2
2012/01/02 1
2012/01/03 0
2012/09/01 1
2012/09/02 0
Name: DATE, dtype: int64

除了 value_counts,您还可以考虑检查相等性和求和,按日期分组,这将包括所有日期。

df['CAR'].eq('BMW').astype(int).groupby(df['DATE']).sum()

输出:

DATE
2012/01/01 2
2012/01/02 1
2012/01/03 0
2012/09/01 1
2012/09/02 0
Name: CAR, dtype: int32

关于python - 在 PANDAS 中使用 value_counts() 出现次数/频率为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51520189/

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