df['new_comment'] = df['comment'].apply(lambda x:comment_p(x)).astype('int')报错'float' object has no attribute 'replace'
时间: 2023-09-14 19:08:19 浏览: 83
这个报错可能是因为 `comment_p` 函数中的某些操作返回了一个浮点数,然后在 `apply` 函数中强制转换为整数类型时出错。您可以尝试修改 `comment_p` 函数,将其中所有可能返回浮点数的操作替换为整数操作,或者将 `apply` 函数中的类型转换部分修改为 `astype('float')`。例如:
```
def comment_p(comment):
# ... 其他操作
return int(score)
df['new_comment'] = df['comment'].apply(lambda x: comment_p(x)).astype('float')
```
相关问题
处理comment列数据 def comment_p(x): x = x.replace(r'+','') if '万' in x: x = x.replace(r'万','') x=float(x)*10000 return x else: return xdf['new_comment'] = df['comment'].apply(lambda x:comment_p(x)).astype('int')报错1 df['new_comment'] = df['comment'].apply(lambda x:comment_p(x)).astype('int')NameError: name 'score' is not defined
根据您提供的代码,`score` 变量并没有被定义,所以会出现 `NameError`。我猜测您可能是想将 `score` 替换为 `x`,因为在 `comment_p` 函数中并没有定义 `score` 变量。您可以尝试将 `score` 替换为 `x`,如下所示:
```
# 处理comment列数据
def comment_p(x):
x = x.replace(r'+','')
if '万' in x:
x = x.replace(r'万','')
x = float(x) * 10000
return int(x)
else:
return int(x)
df['new_comment'] = df['comment'].apply(lambda x: comment_p(x)).astype('int')
```
这样应该就可以将 `comment` 列中的数据转换为整数类型了。
# 处理comment列数据 def comment_p(x): x = x.replace(r'+','') if '万' in x: x = x.replace(r'万','') x=float(x)*10000 return x else: return xdf['new_comment'] = df['comment'].apply(lambda x:comment_p(x)).astype('int')报错3 df['new_comment'] = df['comment'].apply(lambda x: comment_p(x)).astype('float')NameError: name 'score' is not defined
根据您提供的代码,`score` 变量并没有被定义,所以会出现 `NameError`。我猜测您可能是想将 `score` 替换为 `x`,因为在 `comment_p` 函数中并没有定义 `score` 变量。您可以尝试将 `score` 替换为 `x`,如下所示:
```
# 处理comment列数据
def comment_p(x):
x = x.replace(r'+','')
if '万' in x:
x = x.replace(r'万','')
x = float(x) * 10000
return int(x)
else:
return int(x)
df['new_comment'] = df['comment'].apply(lambda x: comment_p(x)).astype('int')
```
这样应该就可以将 `comment` 列中的数据转换为整数类型了。
阅读全文