Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在比较两个整数时会出现类型错误_Python_Pandas_Numpy - Fatal编程技术网

Python 为什么在比较两个整数时会出现类型错误

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],

我犯了一个错误- TypeError:“>=”在“str”和“int”的实例之间不受支持。 但这里我在一个包含整数的列上设置一个条件。这里有什么问题?
我想有一个列半径值列表,其中列半径值大于或等于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)