如何配置Pandas以读取.dat文件

时间:2017-07-05 22:52:36

标签: pandas

似乎无法使用pd.read_csv或pd.read_table加载此文件:

http://cdsarc.u-strasbg.fr/ftp/cats/J/A+A/594/A27/psz2.dat

我试过了:

psz2_2017 = pd.read_csv('http://cdsarc.u-strasbg.fr/ftp/cats/J/A+A/594/A27/psz2.dat', sep=';', header=None)

还尝试使用/ wo sep='\t'(相同结果)和sep='\s+'(获取错误标记数据)的pd.read_table。

结果:

0
0   1 PSZ2 G000.04+45.13 0.0405432 45.135175...
1   2 PSZ2 G000.13+78.04 0.1380577 78.042113...
2   3 PSZ2 G000.40-41.86 0.4029953 -41.860792...

有什么建议吗?

第一行看起来像这样:

1 PSZ2 G000.04+45.13   0.0405432  45.1351750 229.1905120  -1.0172220  4.107310  6.75319 2 111 0     1 0 0.938825   5.481591  1.899500  20 RXC J1516.5-0056           0.119800  3.962411 0.393290 0.370242 J1516.5-0056 RMJ151653.9-010506.3

2 个答案:

答案 0 :(得分:1)

你的数据有不规则的列,大熊猫试图通过阅读前几行并做出错误的推断来找出正确的数字。

这有效:

psz2_2017 = pd.read_csv('http://cdsarc.u-strasbg.fr/ftp/cats/J/A+A/594/A27/psz2.dat',header = None, delim_whitespace=True, error_bad_lines=False )

这里的关键参数是 error_bad_lines = False

答案 1 :(得分:0)

如何使用pd.read_fwf()

psz2_2017 =pd.read_fwf('http://cdsarc.u-strasbg.fr/ftp/cats/J/A+A/594/A27/psz2.dat',header=None)