iT邦幫忙

0

請問怎麼用np.unique來計算一個csv檔裡面的某個欄位有幾個?

  • 分享至 

  • xImage

由於好像沒辦法上傳csv檔
所以我就把csv檔裡面的東西截圖下來放上去https://ithelp.ithome.com.tw/upload/images/20220615/20148351PLIHkiz4hg.jpg

然後我用的方法寫出來感覺也沒算出report_id這個欄位有幾個,只是用list方式顯示出來,很長一條,也沒算出有幾個,是要用len嗎? 試過幾次都是錯誤 還是哪裡需要修改? 程式放下面

x = list(df["report_id"])
print(x)
type(x)
unique_values = np.unique(x)
unique_values, counts = np.unique(x, return_counts=True)


#unique, counts = np.unique(x, return_counts=True)
#print(np.unique(x))

這是執行後的結果,可以請好心人幫忙協助,看是要修改哪裡嗎?
https://ithelp.ithome.com.tw/upload/images/20220615/20148351NQJmzOneX1.jpg

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
hokou
iT邦好手 1 級 ‧ 2022-06-15 16:34:13
最佳解答

https://numpy.org/doc/stable/reference/generated/numpy.unique.html

np.unique 是回傳一個不重複的 array,所以你要算數量就要用 len
但是 numpy 建議使用 shape

print(unique_values.shape[0])

print(len(unique_values))
看更多先前的回應...收起先前的回應...
orga_an21 iT邦新手 5 級 ‧ 2022-06-15 17:05:44 檢舉
x = list(df["report_id"])
print(x)
type(x)
unique_values = np.unique(x)
unique_values, counts = np.unique(x, return_counts=True)

print(unique_values.shape[0])

print(len(unique_values))

這樣嗎?
顯示出來是1945個
但是圖片不是有3070?
還是我有誤會了甚麼?
https://ithelp.ithome.com.tw/upload/images/20220615/20148351tEBOgDMd0V.jpg

orga_an21 iT邦新手 5 級 ‧ 2022-06-15 20:09:17 檢舉

我好像想起來了unique會把重複的拿掉

hokou iT邦好手 1 級 ‧ 2022-06-16 08:36:27 檢舉

是的,他是算不重複的數量
要算總長以你的 list 來加上 len 就可以了

x = list(df["report_id"])
print(len(x))
orga_an21 iT邦新手 5 級 ‧ 2022-06-16 15:27:26 檢舉

謝謝你

我要發表回答

立即登入回答