无法在pandas python中打开CSV文件

时间:2017-10-13 02:40:09

标签: python pandas csv

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

?locator

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

    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)

然而,这就是我所得到的:

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

为什么数据框为空?

如果我在TextEdit上打开文件,前几行实际上是这样的:

    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: []

2 个答案:

答案 0 :(得分:1)

显然,数据中的每个字符后跟空字符\x00。摆脱它们,事情会奏效:

outfile.write(data.replace(b'\x00',b''))

答案 1 :(得分:0)

感谢您提供非常具体且可重现的问题。

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

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

但是,在我尝试了this answer中列出的所有编码之后,它根本没有产生,所以文件也可能出现问题。

我最终如何使它工作是通过在excel中打开并保存为另一个文件,然后pandas可以正确解析它。