熊猫pd.read_csv - 有什么变化吗?

时间:2017-09-11 21:34:00

标签: python pandas csv

我有一段我用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=';')

但这真的有必要吗?

2 个答案:

答案 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=';')