簡體   English   中英

如何在Python中動態創建垃圾箱?

[英]How can I dynamically create bins in Python?

我有以下np數組:

[['ID1', 922.63, 'Product 1'],
['ID1', 1001, 'Product 2'],
['ID1', 800, 'Product 1'],
['ID1', 922.63, 'Product 1'],
['ID1', 1001, 'Product 2'],
['ID2', 800, 'Product 1'],
['ID2', 922.63, 'Product 1'],
['ID2', 1001, 'Product 2'],
['ID3', 800, 'Product 1'],
['ID3', 700.63, 'Product 1'],
['ID3', 1200, 'Product 2'],
['ID3', 850, 'Product 1']]

我關心的是“第二列”($金額)。 我想建立產品1和產品2的直方圖,但我希望將容器的大小設置為100。我正在使用的實際數據集有75K行,其值的范圍從$ 1到$ 200000。 我想自動為這些值創建這些“存儲桶”,然后構建一個直方圖。

我認為使用pandas或numpy可以很容易地找到有關此信息,但是我要么是新手,要么無法理解其他“相似”解決方案,或者只是找不到我想要的東西。 似乎應該是直截了當的。

您可以通過將數據轉換為pandas.DataFrame來獲得直方圖:

a = [['ID1', 922.63, 'Product 1'],
['ID1', 1001, 'Product 2'],
['ID1', 800, 'Product 1'],
['ID1', 922.63, 'Product 1'],
['ID1', 1001, 'Product 2'],
['ID2', 800, 'Product 1'],
['ID2', 922.63, 'Product 1'],
['ID2', 1001, 'Product 2'],
['ID3', 800, 'Product 1'],
['ID3', 700.63, 'Product 1'],
['ID3', 1200, 'Product 2'],
['ID3', 850, 'Product 1']]
q=pd.DataFrame(a,columns=['id','price','product'])
q.hist(column='price',bins=100)

在此處輸入圖片說明

您可以使用bins參數指定所需的bins數:

 q.hist(column='price', bins=100)

在此處輸入圖片說明

如果要按產品分組,請使用by參數:

 q.hist(column='price', bins=100,by='product')

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM