上面这段代码报错 TypeError: 'float' object is not iterable 如何修改
时间: 2023-08-14 08:56:21 浏览: 198
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
出现 "TypeError: 'float' object is not iterable" 错误是因为在处理数据时,可能存在 NaN(空值)或者其他非字符串类型的数据导致的错误。可以通过添加类型检查来避免这个问题。以下是修改后的代码:
```python
import pandas as pd
import re
# 读取桌面上的 1000.xlsx 文件
df = pd.read_excel(r'C:\Users\用户名\Desktop\1000.xlsx')
# 删除 author 列中的 [] 及其之间的内容
df['author'] = df['author'].apply(lambda x: re.sub(r'\[.*?\]', '', str(x)) if isinstance(x, str) else x)
# 将处理好的数据保存为 1000_[].xlsx 文件
output_path = r'C:\Users\用户名\Desktop\1000_[].xlsx'
df.to_excel(output_path, index=False)
print(f"处理后的表格已保存为 {output_path}")
```
在修改后的代码中,使用了 `apply()` 函数结合 lambda 表达式来处理每一行的数据。在 lambda 表达式中,使用了 `isinstance()` 函数来判断数据是否为字符串类型,只有在数据为字符串类型时才进行正则表达式替换操作。这样可以避免出现非字符串类型数据导致的错误。
请确保将 `C:\Users\用户名\Desktop\` 替换为您自己的桌面路径,并且 `1000.xlsx` 文件存在于该路径下。这段代码会将处理好的数据保存为 `1000_[].xlsx` 文件,并打印出保存路径。
阅读全文