为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas Python 计算一列包含数字列表的次数

Pandas Python 计算一列包含数字列表的次数

呼啦一阵风 2023-12-09 15:48:37
假设数据框看起来像这样。.  Value0  862481  552652  526543  555684  569855  568556  796237  56648    ...我想计算数字[0,1,2,3...,100000]在列中出现的次数Value,然后将结果制成表格。.  Value 0  86248    df.loc[df.Value == 0, 'Value'].count()1  55265    df.loc[df.Value == 1, 'Value'].count()2  52654    df.loc[df.Value == 2, 'Value'].count()3  55568    df.loc[df.Value == 3, 'Value'].count()4  56985    df.loc[df.Value == 4, 'Value'].count()5  56855    df.loc[df.Value == 5, 'Value'].count()6  79623    df.loc[df.Value == 6, 'Value'].count()7  56648    df.loc[df.Value == 7, 'Value'].count()    ...                       ....            df.loc[df.Value ==100 000, 'Value'].count()预期产出.   Value      Counts          0     2          0        #Count 01     5          0        #Count 12     9          1        #Count 23     8          2        #Count 34     3          0        #Count 45     3          1        #Count 56     7          0        #Count 67     6          1        #Count 7
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

Series.value_counts()您可以与调用一起使用来.reindex快速解决此问题。


创建样本数据:


df = pd.DataFrame({

    "Value": [10, 8, 1, 2, 3, 10, 10, 10, 1, 1]

})


print(df)

   Value

0     10

1      8

2      1

3      2

4      3

5     10

6     10

7     10

8      1

9      1

创建一个 value_range,它是我想要计数的最小/最大值。在本例中,我想查看 0-10 之间的数字在“值”列中出现了多少次。

然后,我们用于df["Value"].value_counts()获取该列中每个值出现的次数。

最后,我们使用reindex(value_range, fill_value=0)重新排序我们的输出,value_counts()以包含最初不在“值”列中的数字(例如 4、5、6、7、9),如果是这种情况,它将用 0 填充这些不存在的数字(因为它们在我们原来的专栏中出现过 0 次)

value_range = range(0, 11) 

out = df["Value"].value_counts().reindex(value_range, fill_value=0)


print(out)

0     0

1     3

2     1

3     1

4     0

5     0

6     0

7     0

8     1

9     0

10    4

Name: Value, dtype: int64


查看完整回答
反对 回复 2023-12-09
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

我假设你的要求是:


对于 [0,1,2....100000] 中的每个 num,计算 num 在“值”列中出现的次数。


例如结果: 0:出现 x 次 1:出现 x 次 ....


counts_dict = dict


for i in [1,2,.....,100000]:

    #how many rows have this value?

    count = len(df[df.value==i])


    #add this to a dictionary

    counts_dict.update({i:count})

您现在拥有 [1,2,.....,100000] 中每个值以及它们出现的次数的字典。为了简单起见,您可以将其视为数据框:


s = pd.Series(counts_dict, name='counts')

其中 s 的索引是您的商品,值是计数


查看完整回答
反对 回复 2023-12-09
  • 2 回答
  • 0 关注
  • 59 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信