2016-04-22 79 views
3

我想用大熊猫阅读分隔文件。分隔符是希腊字符,小写rho(þ)。阅读rho分隔文件

我正在努力定义正确的read_table参数,以便生成的数据帧格式正确。

有没有人有任何经验或建议呢?

的文件的一个例子是下面

TimeþUser-IDþAdvertiser-IDþOrder-IDþAd-IDþCreative-IDþCreative-VersionþCreative尺寸-IDþSite-IDþPage-IDþCountry-IDþState/ProvinceþBrowser-IDþBrowser-VersionþOS-IDþDMA-IDþCity-IDþZip -CodeþSite-DataþTime-UTC-SEC 03-28-2016-00:50:03þ0þ3893600þ7786669þ298662779þ67802437þ1þ300x250þ1722397þ125754620þ68þþ30þ0.0þ501012þ0þ3711þþþ1459122603 03-28-2016-00:24:29þ0þ3893600þ7352234þ290743769þ55727503þ1þ1x1þ1602646þ117915815þ68þþ31þ0.0þ501012þ0þ3711þþþ1459121069 03-28-2016-00:13:42þ0þ3893600þ7352234þ290743769þ55727503þ1þ1x1þ1602646þ117915815þ68þþ31þ0.0þ501012þ0þ37 11þþþ1459120422 03-28-2016-00:21:09þ0þ3893600þ7352234þ290743769þ55727503þ1þ1x1þ1602646þ117915815þ68þþ31þ0.0þ501012þ0þ3711þþþ1459120869

+2

所以你说'read_table(file,sep =r'ρ')'不起作用?或者使用额外的参数'encoding ='utf-8'或'encoding ='utf-16''? – EdChum

+0

是的,没错。 –

+0

我在一台Windows机器上,这可能没有帮助,但我想先检查一下我的语法是否正确。已经尝试了以下。数据= pd.read_table('C:\ Users \ robin.sheridan \ Documents \ RCode \ NetworkImpression_5684_03-28-2016',sep =r'ρ',nrows = 10,encoding ='pd ' utf-16') print(data)' –

回答

2

我觉得发生了什么事是,C发动机没有在这里工作。如果我们切换到更强大但更慢的Python引擎,它似乎表现得很好。例如,使用默认的C引擎:

>>> df = pd.read_csv("out.rsv",sep="þ") 
>>> df.iloc[:,:5] 
    TimeþUser-IDþAdvertiser-IDþOrder-IDþAd-IDþCreative-IDþCreative-VersionþCreative-Size-IDþSite-IDþPage-IDþCountry-IDþState/ProvinceþBrowser-IDþBrowser-VersionþOS-IDþDMA-IDþCity-IDþZip-CodeþSite-DataþTime-UTC-Sec 
0 03-28-2016-00:50:03þ0þ3893600þ7786669þ29866277...                                        
1 03-28-2016-00:24:29þ0þ3893600þ7352234þ29074376...                                        
2 03-28-2016-00:13:42þ0þ3893600þ7352234þ29074376...                                        
3 03-28-2016-00:21:09þ0þ3893600þ7352234þ29074376...  

但与Python:

>>> df = pd.read_csv("out.rsv",sep="þ", engine="python") 
>>> df.iloc[:,:5] 
        Time User-ID Advertiser-ID Order-ID  Ad-ID 
0 03-28-2016-00:50:03  0  3893600 7786669 298662779 
1 03-28-2016-00:24:29  0  3893600 7352234 290743769 
2 03-28-2016-00:13:42  0  3893600 7352234 290743769 
3 03-28-2016-00:21:09  0  3893600 7352234 290743769 

..但严重的是,þ?您正在使用+作为分隔符?唯一的搜索命中谷歌给我的“rho分隔文件”都与这个问题有关!

请注意,你说小写rho,但它看起来像刺我..也许这是一个小写字母rho在你的结尾,并在发布中感到困惑?

+0

是的,我的坏,它的刺。 (只有这样,我才能看到它是一个低劣的文本编辑器......) 奇怪的是,那仍然不起作用。我将在周末尝试我的Mac。强烈怀疑我的Windows机器和愚蠢的分离器一样是个问题。 (显然不是我的选择) 感谢您的帮助! –