如果用pd.read_csv这样会报错 那能不能逐行读取并处理
时间: 2024-10-11 16:16:48 浏览: 14
快速解决pandas.read_csv()乱码的问题
5星 · 资源好评率100%
如果直接使用 `pd.read_csv()` 出现了错误,特别是编码相关的错误,逐行读取并处理是一种可行的解决办法。你可以使用 Python 的内置模块 `open` 或者 `csv` 来实现。以下是一个简单的例子:
```python
import csv
# 打开文件
with open('your_file.csv', 'r', newline='', encoding='utf-16') as csvfile:
# 创建 CSV 读取器
reader = csv.reader(csvfile)
# 逐行读取并处理
for row in reader:
try:
# 尝试将每一行数据作为列表解析
processed_row = [cell.decode('utf-16') if isinstance(cell, bytes) else cell for cell in row]
# 这里可以进一步清洗、转换数据,然后保存到新的数据结构(例如列表或 DataFrame)
except UnicodeDecodeError:
# 处理解码错误,例如记录错误行或者忽略
print(f"UnicodeDecodeError on line: {reader.line_num}")
# 在这里对processed_row做进一步操作...
```
在这个示例中,我们逐行读取CSV文件,检查每个单元格是否为字节类型(在Python 3中,字符串默认是str,而二进制数据通常是bytes),如果是,我们就解码成字符串。如果在解码过程中遇到错误,我们可以捕获`UnicodeDecodeError`并采取相应的处理措施。
阅读全文