提问人:SH_IQ 提问时间:11/1/2023 更新时间:11/1/2023 访问量:81
请问我该如何解决这个错误(“float”类型的对象没有len())?
How can I solve this error (object of type 'float' has no len()), please?
问:
我正在处理数据集 AMAZON ALEXA REVIEW RATINGS
当我上传我的数据集时,如下所示
df_alexa = pd.read_csv('amazon_alexa.tsv', sep='\t')
我想添加一个新功能,称为长度,如下所示
df_alexa['length'] = df_alexa['verified_reviews'].apply(len)
但是,我得到以下错误:
TypeError: object of type 'float' has no len()
请问有什么帮助吗?
答:
2赞
Fridolin
11/1/2023
#1
我认为这个输出是由于有时有经过验证的评论是 nan 的列造成的,所以你必须计算评论的长度,如果它是具有 nan 值的列,它应该返回 0。所以我创建了一个函数,如果它是空行,则返回 0。首先,我想尝试一个子集,也许它会起作用,但我没有弄清楚如何显示没有评论的行。
import pandas as pd
df = pd.read_csv('amazon_alexa.tsv', sep='\t')
df.dropna(subset=['verified_reviews'], inplace=True)
df['length'] = df['verified_reviews'].apply(len)
print(df)
如果有空行并且您想查看它们,则在代码下方。
import pandas as pd
def calculate_length(review):
if pd.notna(review):
return len(str(review))
else:
return 0
df = pd.read_csv('amazon_alexa.tsv', sep='\t')
df['length'] = df['verified_reviews'].apply(calculate_length)
print(df)
让我知道它是否有效,如果没有,请发表评论
评论
nan
df_alexa['verified_reviews'].fillna("").apply(len)
df_alexa['length'] = df_alexa['verified_reviews'].str.len()
df_alexa['verified_reviews'].dtype