2017-10-13 48 views
0

我跑到下面的脚本(https://github.com/FXCMAPI/FXCMTickData/blob/master/TickData34.py),并在末尾添加以下行来下载文件:无法打开熊猫蟒蛇CSV文件

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') 

然而,这是我得到了什么:

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

为什么数据帧空?

如果我打开文本编辑文件时,前几行实际上是这样的:

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 
+0

直到你删除空值的数据框不是空的。您需要使用parse_dates ='DateTime' – Keith

回答

1

显然,在数据的每一个字符后面是空字符\x00。摆脱他们,事情将工作:

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

谢谢!这工作 – Mariska

0

感谢你们提供了一个非常具体的和可重复的问题。

我粘贴代码,并在窗口中运行他们,它确实只是空值的55MB读取。

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

不过,我想列出的所有编码中this answer后,它根本没有屈服,因此可能会与文件不对劲为好。

如何最终取得了它的工作是由在Excel中打开并保存为不同的文件,然后大熊猫能正确分析。