我正在尝试对数据帧中的列应用IF函数。很简单,如果工资超过5万英镑,我希望它返回“5万英镑以上”,如果工资低于5万英镑,则返回“5万英镑以下”。你知道吗
我尝试了下面的代码,但遇到了错误消息。我做了一些关于在处理数据帧时使用apply函数的研究,因此定义了一个函数并使用了下面的第二段代码,但是得到了第二条错误消息。你知道吗
salary = employees['Salary']
if Salary > 50000:
print('Over £50,000')
else:
print('Under £50,000')
应用方法
def SalaryCheck():
if Salary > 50000:
print('Over £50,000')
else:
print('Under £50,000')
employees.Salary.apply(SalaryCheck)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Users\Peter\PycharmProjects\untitled\venv\lib\site- packages\pandas\core\generic.py", line 1556, in __nonzero__
self.__class__.__name__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
应用方法警告
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Users\Peter\PycharmProjects\untitled\venv\lib\site- packages\pandas\core\series.py", line 4038, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
您可以使用以下方法。请阅读关于apply()的说明。你知道吗
另一种方法:
employee['salary'] > 50000
返回一系列的True/False,然后用所需的文本替换True和False。你知道吗相关问题 更多 >
编程相关推荐