df = pd.read_csv('file.csv') age = {tuple(list(df['Age']))} def Agelevel (age): if age<18: return '幼儿、少儿、青少年' elif age>=18&age<46: return '青年人' elif age>=46&age<70: return '中年人' elif age>=70: return '老年人' Agelevel (age--------------------------------------------------------------------------- TypeError Traceback (most recent call last) /var/folders/39/3bxxf1yn5wgbpn4fy8gx_3nc0000gn/T/ipykernel_1199/3714204000.py in <module> 10 elif age>=70: 11 return '老年人' ---> 12 Agelevel (age) /var/folders/39/3bxxf1yn5wgbpn4fy8gx_3nc0000gn/T/ipykernel_1199/3714204000.py in Agelevel(age) 2 age = {tuple(list(df['Age']))} 3 def Agelevel (age): ----> 4 if age<18: 5 return '幼儿、少儿、青少年' 6 elif age>=18&age<46: TypeError: '<' not supported between instances of 'set' and 'int'怎么解决
时间: 2023-08-25 09:39:53 浏览: 159
这个错误是因为你将 age 定义为了一个 set 类型的变量,而 set 类型不支持与 int 类型的比较运算符。你需要将 age 定义为一个 int 类型的变量,或者从 df 中提取一个 int 类型的列作为 age 变量。你可以按照下面的代码进行修改:
```
import pandas as pd
df = pd.read_csv('file.csv')
age = df['Age'].tolist()
def Agelevel(age):
if age < 18:
return '幼儿、少儿、青少年'
elif age >= 18 and age < 46:
return '青年人'
elif age >= 46 and age < 70:
return '中年人'
elif age >= 70:
return '老年人'
Agelevel(age)
```
这里将 age 定义为一个列表,其中元素为 df 中 Age 列的值。然后在 Agelevel 函数中,直接使用 age 变量进行比较即可。注意,Python 中的逻辑运算符 and 和 or 要使用英文字符,即 and 和 or,而不是中文字符。
阅读全文