2 回答

TA貢獻1735條經(jīng)驗 獲得超5個贊
Series.value_counts()您可以與調(diào)用一起使用來.reindex快速解決此問題。
創(chuàng)建樣本數(shù)據(jù):
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
創(chuàng)建一個 value_range,它是我想要計數(shù)的最小/最大值。在本例中,我想查看 0-10 之間的數(shù)字在“值”列中出現(xiàn)了多少次。
然后,我們用于df["Value"].value_counts()獲取該列中每個值出現(xiàn)的次數(shù)。
最后,我們使用reindex(value_range, fill_value=0)重新排序我們的輸出,value_counts()以包含最初不在“值”列中的數(shù)字(例如 4、5、6、7、9),如果是這種情況,它將用 0 填充這些不存在的數(shù)字(因為它們在我們原來的專欄中出現(xiàn)過 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

TA貢獻1830條經(jīng)驗 獲得超9個贊
我假設(shè)你的要求是:
對于 [0,1,2....100000] 中的每個 num,計算 num 在“值”列中出現(xiàn)的次數(shù)。
例如結(jié)果: 0:出現(xiàn) x 次 1:出現(xiàn) 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})
您現(xiàn)在擁有 [1,2,.....,100000] 中每個值以及它們出現(xiàn)的次數(shù)的字典。為了簡單起見,您可以將其視為數(shù)據(jù)框:
s = pd.Series(counts_dict, name='counts')
其中 s 的索引是您的商品,值是計數(shù)
添加回答
舉報