表: Accounts
+-------------+------+ | 列名 | 类型 | +-------------+------+ | account_id | int | | income | int | +-------------+------+ 在 SQL 中,account_id 是这个表的主键。 每一行都包含一个银行帐户的月收入的信息。
查询每个工资类别的银行账户数量。 工资类别如下:
"Low Salary"
:所有工资 严格低于20000
美元。"Average Salary"
: 包含 范围内的所有工资[$20000, $50000]
。-
"High Salary"
:所有工资 严格大于50000
美元。
结果表 必须 包含所有三个类别。 如果某个类别中没有帐户,则报告 0
。
按 任意顺序 返回结果表。
解题思路-1
1.计算出每个类别的值
2.对每个结果进行拼接
import pandas as pd
def count_salary_categories(accounts: pd.DataFrame) -> pd.DataFrame:
Low = accounts['income']<20000
low_s = Low.sum()
result_1 = pd.DataFrame({'category':['Low Salary'], 'accounts_count': [low_s]})
average = (20000 <= accounts['income'])&(accounts['income']<= 50000)
average_s = average.sum()
result_2 = pd.DataFrame({'category':['Average Salary'],'accounts_count': [average_s]})
high = accounts['income']>50000
high_s = high.sum()
result_3 = pd.DataFrame({'category':['High Salary'],'accounts_count': [high_s]})
result = pd.concat([result_1, result_2, result_3], axis=0)
return result
解题思路-2
1.计算每个类别的值
2.建表,将值插入
import pandas as pd
def count_salary_categories(accounts: pd.DataFrame) -> pd.DataFrame:
low_count = (accounts['income'] < 20000).sum()
average_count = ((accounts['income'] >= 20000) & (accounts['income'] <= 50000)).sum()
high_count = (accounts['income'] > 50000).sum()
ans = pd.DataFrame({
'category': ['Low Salary', 'Average Salary', 'High Salary'],
'accounts_count': [low_count, average_count, high_count]
})
return ans
作者:力扣官方题解
链接:https://leetcode.cn/problems/count-salary-categories/solutions/2366263/an-fen-lei-tong-ji-xin-shui-by-leetcode-wr0c5/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。