Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 在显示错误数据类型时应用方法

Python 在显示错误数据类型时应用方法,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,在StackOverflow数据集上使用apply()方法时,我遇到了一个错误。我试图在“业余爱好者”一栏中找出每个回复的长度。我使用的代码是: result = pd. read_csv ("survey_results_public.csv") result ["HOBBYIST"]. apply (len) 我得到的错误是: TypeError:类型为“float”的对象没有len() 即使“HOBBYIST”列中的数据只包括“Yes”和“No”(

在StackOverflow数据集上使用apply()方法时,我遇到了一个错误。我试图在“业余爱好者”一栏中找出每个回复的长度。我使用的代码是:

result = pd. read_csv ("survey_results_public.csv")
result ["HOBBYIST"]. apply (len)
我得到的错误是: TypeError:类型为“float”的对象没有len()

即使“HOBBYIST”列中的数据只包括“Yes”和“No”(以及一些空值),这显然不是浮点数据类型

后来我将代码更改为:

result ["HOBBYIST"]. astype (str). apply (len)

这说明了正确的结果,但是为什么应用方法认为“是”和“否”是浮点数据类型?

< P>你可以防止<代码>熊猫。
result = pd.read_csv("survey_results_public.csv", dtype={"HOBBYIST": str})

您还可以删除所有空记录以防止此类问题。这是样品

#import library
import pandas as pd

#sample data
result = pd.DataFrame({'name': ['Ivan','John','Shaun'],'HOBBYIST':['Yes',None,'No']})
result
具有空数据的结果数据集

使用dropna()方法,我们可以省略所有空记录,如下所示

#removing or dropping all null records
result = result.dropna()
result
没有空记录的结果数据集

现在可以对apply()函数执行len

df["HOBBYIST"].apply(len)
结果


N.B。确保指定的列是字符串类型。除非最好按照上述答案将列转换为字符串类型。

列中可能有
NaN
值?指定列中可能有空数据或空数据
df.info()的输出是什么
    name    HOBBYIST
0   Ivan    Yes
2   Shaun   No
df["HOBBYIST"].apply(len)
0    3
Name: HOBBYIST, dtype: int64