我有一段我用Jupyter写的代码〜1年前成功使用了
dg = pd.read_csv(f10,sep=';')
阅读此数据
A;W
83;88,0
64;70,1
94;94,2
今天我得到了:
OSError: Initializing from file failed
以及其中的某个地方:
C:\Anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
964 def _make_engine(self, engine='c'):
965 if engine == 'c':
--> 966 self._engine = CParserWrapper(self.f, **self.options)
967 else:
968 if engine == 'python':
然而,今天有效:
with open(f10, newline='') as csvfile:
data = csv.reader(csvfile, delimiter=';')
既然我喜欢熊猫的方式,有人知道我应该改变什么吗? Tx提示!
修改: 我刚刚发现,这也有效:
with open(f10, newline='') as csvfile:
dg = pd.read_csv(csvfile, delimiter=';')
但这真的有必要吗?
答案 0 :(得分:3)
试试这个:
import sys
pd.read_csv(f10, sep=';', encoding=sys.getdefaultencoding())
<强>更新强>
它也可以是caused by characters with accents in the path or filename,所以尝试移动/重命名路径/文件名以仅包含ASCII字符并再次尝试...
答案 1 :(得分:1)
我猜这个问题来自newline
,\n
预计会pandas
。{/ p>
您可以将缓冲区直接传递给pd.read_csv()
:
dg = pd.read_csv(open(f10, newline=''), sep=';')