当前位置: 首页 > 知识库问答 >
问题:

无法在熊猫python中打开CSV文件

松国兴
2023-03-14

我运行了以下脚本(https://github.com/FXCMAPI/FXCMTickData/blob/master/TickData34.py)并在末尾添加以下行以下载文件:

    output_folder = '/Users/me/Documents/data/forex/'
    target_folder = os.path.join(output_folder, symbol, year)
    os.makedirs(target_folder, exist_ok=True)
    with open(os.path.join(target_folder, str(i) + '.csv'), 'wb') as outfile:
            outfile.write(data)

然后,我尝试使用pandas打开文件,如下所示:

x = pd.read_csv('/Users/me/Documents/data/forex/EURUSD/2015/29.csv')

然而,我得到的是:

    In [3]: x.info()
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 2415632 entries, 0 to 2415631
    Data columns (total 3 columns):
    D             float64
    Unnamed: 1    float64
    Unnamed: 2    float64
    dtypes: float64(3)
    memory usage: 55.3 MB

    In [4]: x.dropna()
    Out[4]: 
    Empty DataFrame
    Columns: [D, Unnamed: 1, Unnamed: 2]
    Index: []

为什么数据框是空的?

如果我在TextEdit上打开文件,前几行实际上如下所示:

DateTime,Bid,Ask

07/19/2015 21:00:15.469,1.083,1.08332

07/19/2015 21:00:16.949,1.08311,1.08332

07/19/2015 21:00:16.955,1.08311,1.08338

共有2个答案

巴星华
2023-03-14

感谢您提供了一个非常具体且可重复的问题。

我粘贴了你的代码并在windows中运行,它实际上只读取了55MB的空值。

但我认为这是熊猫没有正确解析csv文件的问题,而不是它无法打开csv文件。

然而,在我尝试了这个答案中列出的所有编码之后,它根本没有产生效果,因此可能是文件也有问题。

我最终让它工作的方式是通过在excel中打开它并保存为不同的文件,然后熊猫可以正确解析它。

毕浩渺
2023-03-14

显然,数据中的每个字符后面都跟有空字符\x00。摆脱它们,事情就会发生:

outfile.write(data.replace(b'\x00',b''))
 类似资料:
  • 我保存了一个熊猫数据框作为CSV使用 但是当我读到它在使用 我收到一条错误消息说 UnicodeDecodeError:“utf-8”编解码器无法解码位置158处的字节0xbf:无效的开始字节 我已经尝试通过使用打开csv文件来强制读取时的编码为utf-8 真的卡住了,有人能帮忙吗? 非常感谢

  • 用熊猫打开德国csv文件的最佳方式是什么? 我有一个包含以下列的德语csv文件: 基准:格式为“DD.MM”的日期。YYYY' Umlaute:带有德语特有字符的德语名称 扎伦:格式为“000.000,00”的数字 我的预期产出是: 下面提供了示例数据(见文件)。 这将引发一个: 这不会引发错误,但与我期望的输出相差甚远: 日期是字符串,而不是日期时间 现在,我有四行代码,但仍然不起作用。最后一行

  • 问题内容: 这个问题已经在这里有了答案 : Python中的Windows路径 (5个答案) 4年前关闭。 追溯(最近一次通话): 产品中的文件“”,第1行= pd.read_csv(’C:\ amazon_baby.csv’) 在parser_f中的第562行的文件“ C:\ Users \ kvsn \ Anaconda3 \ lib \ site-packages \ pandas \ io

  • 我试图加载一个csv文件内基于熊猫的数据帧。我使用了以下导入。 没有找到文件是抛出错误,回溯如下: ()中的FileNotFoundError回溯(最近一次调用)---- c:\users\saish\appdata\local\programs\python\python35-32\lib\site packages\pandas\io\parsers。语法分析器中的py\u f(文件路径或缓冲

  • 我试图从特定文件路径的文本文件导入数据,但我得到错误 我的问题是,无论如何,我可以将“utf-8”编码应用于所有最终必须打开的文本文件(大约20个其他文件),以便防止上述错误? 代码: 如果我做错了什么,我也愿意接受任何建议。 先谢谢你。

  • 我新安装了Excel 2016,它讨厌CSV文件。它以一栏旗杆风格打开它们,沿着A栏向下,可以看到逗号和语音标记。 突出点: > 我可以在笔记本电脑上创建CSV文件,保存这些文件,然后在笔记本电脑上再次打开它们,一切正常。 即使在记事本中打开它,保存下来,希望某种文件格式正常化,但仍然没有什么好处。 我比较了区域设置和Excel中几乎所有的设置。 我尝试将文件重命名为TXT,它打开了文本文件转换对