Python 为什么在比较两个整数时会出现类型错误
我犯了一个错误- TypeError:“>=”在“str”和“int”的实例之间不受支持。 但这里我在一个包含整数的列上设置一个条件。这里有什么问题?Python 为什么在比较两个整数时会出现类型错误,python,pandas,numpy,Python,Pandas,Numpy,我犯了一个错误- TypeError:“>=”在“str”和“int”的实例之间不受支持。 但这里我在一个包含整数的列上设置一个条件。这里有什么问题? 我想有一个列半径值列表,其中列半径值大于或等于57,“Case”=“M键入创建df后的radius列,它应该工作: import numpy as np import pandas as pd a = np.array([["M", 86], ["M", 76],
我想有一个列半径值列表,其中列半径值大于或等于57,“Case”=“M键入创建df后的
radius
列,它应该工作:
import numpy as np
import pandas as pd
a = np.array([["M", 86],
["M", 76],
["M", 56],
["M", 66],
["B", 16],
["B", 13],
["B", 16],
["B", 18],
["B", 14], ])
df = pd.DataFrame(data=a, columns=["Case", "radius"])
print(df)
print(df.columns)
a = df[(df["radius"] >= 57) & (df["Case"] == "M")]["radius"].tolist()
print(a)
radius的列类型是object。当您将其转换为df[“radius”]时,它将起作用。astype(int)>=57np.array是一种单一类型。由于从np.array开始,该数组的类型是object。如果您使用了列表,则在转换为数据帧时,数据类型将是正确的。您还可以使用
df=df.convert\u dtypes()
修复帧中的所有数据类型。从a
作为列表而不是数组开始。并在尝试执行测试之前检查df.dtypes
df.radius = df.radius.astype(int)