給定下面的表格格式
id book_name(TEXT) rating(REAL)
1 The Book 50.0
2 Perks Of 30.2
3 book game 100.0
4 Hobbit 80.0
我想計算文本中包含“book”(不區分大小寫)并且評分高于 50.0 的 book_name 的百分比。百分比將計算為(滿足 2 個條件的行數 / 總行數)。這種情況下的答案是通過 2/4 = 50.0計算出來的(這是百分比形式)
我想回傳 50.0 作為答案
uj5u.com熱心網友回復:
您可以在 SUM() 中使用 CASE 陳述句來進行條件計數 -
SELECT ROUND((SUM(CASE WHEN book_name LIKE '%book%' AND rating >= 50 THEN 1 END)/COUNT(*)) * 100, 1)
FROM books
更新
我在兩個 COUNT 的除法周圍添加了另一對括號,以解決@ChrisCharley 在下面的評論中提到的問題。
uj5u.com熱心網友回復:
您可以使用 lower then filter 在條件上使用正則運算式
import pandas as pd
data = {"id":[1,2,3,4], "book_name(TEXT)":["The Book","Perks Of","book game","Hobbit"],"rating(REAL)":[50.0,30.2,100.0, 80.0] }
data = pd.DataFrame(data)
data["lower"] = data["book_name(TEXT)"].str.lower()
data1 = data[data.lower.str.contains("book")==True]
data1 = data1[data1["rating(REAL)"]>=50.0]
(len(data1)/len(data))*100
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/418002.html
標籤:
下一篇:前端網路安全——前端CSRF
