【发布时间】:2021-04-15 20:09:50
【问题描述】:
我正在尝试执行此代码
import pandas as pd
df_schema = pd.read_csv('survey_results_schema.csv')
df_results = pd.read_csv('survey_results_public.csv', index_col='Respondent')
print(df_results['Country'].apply(len))
我应该得到这个:
Respondent
1 14
2 22
3 8
...
但我不断收到此错误,我不知道如何解决它:
Exception has occurred: TypeError
object of type 'float' has no len()
如果我们执行这行print(df_results['Country']),我们会得到这个
Respondent
1 United Kingdom
2 Bosnia and Herzegovina
3 Thailand
4 United States
5 Ukraine
...
88377 Canada
88601 NaN
88802 NaN
88816 NaN
88863 Spain
我的代码有什么问题?
【问题讨论】:
-
它是如何工作的,在里面使用 lambda 试试你自己!
-
您期望
df_results中的所有行都被填充,我们可以从最终的代码块中看到某些行上存在缺失值(NaN)。你需要弄清楚如何处理它们。一个好的起点在这里:working with missing data -
@BhavyaParikh 使用 lambda 无法解决此处的问题,您可以在不使用 lambda 的情况下应用
len。问题是NaN是浮点数,没有长度。 -
用你自己的话来说,你认为
len(NaN)的结果应该是什么?为什么?你认为NaN到底是什么?