制作pandas数据帧时的UnicodeDecodeError

时间:2017-03-17 12:16:41

标签: python csv dataframe decode encode

我正在尝试使用我的CSV文件制作pandas数据帧。

这是我的代码:

import requests, re, pandas, csv
from bs4 import BeautifulSoup
from io import StringIO

base_url="http://www.hltv.org/?pageid=188&statsfilter=2816&offset="
with open('cs_data1.csv', 'w', newline='') as out_file:
    for page in range(0,1200,50):
        r=requests.get(base_url+str(page))
        c=r.content

        table=BeautifulSoup(c,"html.parser")
        for row in table.find_all('div', style=re.compile(r'width:606px;height:22px;background-color')):
            buffer=StringIO(row.get_text(strip=True, separator=','))
            reader=csv.reader(buffer, skipinitialspace=True)        
            writer=csv.writer(out_file)
            writer.writerows(reader)

该代码生成CSV文件,并且工作正常。然后我尝试制作pandas数据帧:

df=pandas.read_csv("cs_data1.csv")
df

我得到了错误:“UnicodeDecodeError:'utf-8'编解码器无法解码位置22中的字节0xf6:无效的起始字节”。

我应该尝试编码/解码,以便数据框可以工作吗?

1 个答案:

答案 0 :(得分:1)

你有没有尝试过:

df = pandas.read_csv("cs_data1.csv", encoding='utf-8')