pandas 我如何解决这个错误(类型为'float'的对象没有len())?

cu6pst1q  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(167)

我正在处理数据集AMAZON ALEXA REVIEW RATINGS
当我上传我的数据集如下

  1. df_alexa = pd.read_csv('amazon_alexa.tsv', sep='\t')

字符串


的数据
我想添加一个新特性,它被称为长度,如下所示

  1. df_alexa['length'] = df_alexa['verified_reviews'].apply(len)


但是,我得到下面的错误:

  1. TypeError: object of type 'float' has no len()


”任何帮助,请吗?

2hh7jdfx

2hh7jdfx1#

我认为这个输出是由于有时候有些列的验证评论是nan,所以你必须计算评论的长度,如果它是一个有nan值的列,它应该返回0。所以我创建了一个函数,如果它是一个空行,它会返回0。首先,我想用一个子集来尝试它,也许它会工作,但我不知道如何显示没有nan值的行评论.

  1. import pandas as pd
  2. df = pd.read_csv('amazon_alexa.tsv', sep='\t')
  3. df.dropna(subset=['verified_reviews'], inplace=True)
  4. df['length'] = df['verified_reviews'].apply(len)
  5. print(df)

字符串
如果有空行并且您希望看到它们,请在代码下方。

  1. import pandas as pd
  2. def calculate_length(review):
  3. if pd.notna(review):
  4. return len(str(review))
  5. else:
  6. return 0
  7. df = pd.read_csv('amazon_alexa.tsv', sep='\t')
  8. df['length'] = df['verified_reviews'].apply(calculate_length)
  9. print(df)


让我知道它是否有效,如果不是,请发表评论

展开查看全部

相关问题