Python Numpy 类型错误:输入类型不支持 ufunc 'isfinite'



我试着写一个创建桶的代码。由于要存储的列有很多十进制值,并且是object数据类型,因此我将该列转换为float类型。在类型转换之后,当运行箱子时,出现错误

下面是我的代码:

import pandas as pd
import numpy as np
df=pd.read_excel(r'D:Practice FilesAnirudh Exercise Skin India.xlsx')
#print(df)
#Conversion of str to int
df['Basepacksize'] = df['Basepacksize'].astype(str).astype(float)
#Pack Ranges/Sachets/Non-Sachets
bins= ['0','10','15','30','50','100']
df1=pd.cut(df['Basepacksize'], bins)
print(df1)

我希望它创建一个桶,但得到了这个错误:

Traceback (most recent call last):
File "C:UsersaniPycharmProjectspythonProjectmain7.py", line 11, in <module>
df1=pd.cut(df['Basepacksize'], bins)
File "C:UsersaniPycharmProjectspythonProjectvenvlibsite-packagespandascorereshapetile.py", line 293, in cut
fac, bins = _bins_to_cuts(
File "C:UsersaniPycharmProjectspythonProjectvenvlibsite-packagespandascorereshapetile.py", line 444, in _bins_to_cuts
labels = _format_labels(
File "C:UsersaniPycharmProjectspythonProjectvenvlibsite-packagespandascorereshapetile.py", line 578, in _format_labels
precision = _infer_precision(precision, bins)
File "C:UsersaniPycharmProjectspythonProjectvenvlibsite-packagespandascorereshapetile.py", line 644, in _infer_precision
levels = [_round_frac(b, precision) for b in bins]
File "C:UsersaniPycharmProjectspythonProjectvenvlibsite-packagespandascorereshapetile.py", line 644, in <listcomp>    levels = [_round_frac(b, precision) for b in bins]
File "C:UsersaniPycharmProjectspythonProjectvenvlibsite-packagespandascorereshapetile.py", line 628, in _round_frac
if not np.isfinite(x) or x == 0:
TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
Process finished with exit code 1
Improve question   

本行;

if not np.isfinite(x) or x == 0:

x的Datatype应为float

如果是任何其他数据类型,它会给你错误。

相关内容

最新更新