预在Python中导入CSV文件,数据文件已放在同一工程目录下。
import pandas as pd
data = pd.read_csv("./data.csv")
报错如下:
Traceback (most recent call last):
File "<ipython-input-2-21c2a26ae0ac>", line 1, in <module>
data = pd.read_csv('./data.csv')
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 655, in parser_f
return _read(filepath_or_buffer, kwds)
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 405, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 764, in __init__
self._make_engine(self.engine)
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 985, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1605, in __init__
self._reader = parsers.TextReader(src, **kwds)
File "pandas/_libs/parsers.pyx", line 562, in pandas._libs.parsers.TextReader.__cinit__ (pandas\_libs\parsers.c:6175)
File "pandas/_libs/parsers.pyx", line 781, in pandas._libs.parsers.TextReader._get_header (pandas\_libs\parsers.c:9691)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte
解决方案如下:
data = pd.read_csv("./data.csv", encoding = "unicode_escape")
这个问题虽说解决了,但是在绘制散点图时却出现如下错误:
from matplotlib import pyplot as plt
plt.scatter(data.广告投入,data.销售额)
Traceback (most recent call last):
File "<ipython-input-3-740375a4723d>", line 2, in <module>
plt.scatter(data.广告投入,data.销售额)
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 3081, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute '广告投入'
查看变量,发现属性值都成了乱码,如下图所示:
原来在用pd.read_csv读取数据时不能正确读取中文标题。
解决方案如下:
data = pd.read_csv("./data.csv", encoding = "gb2312")
将读取数据时的方法修改一下就可以解决问题了。绘制散点图结果如下: