将包含在第一行中的标题的ascii文件读入pandas数据帧

Dal*_*lek 2 python numpy pandas astropy

我有一组庞大的目录,每列有不同的列和不同的标题名称,每个标题名称的描述在我的ascii文件的开头连续给出.阅读它们的最佳方法是什么pandas.DataFrame,它可以设置列的名称,而无需从头开始定义它.以下是我的目录示例:

#   1 MAG_AUTO            Kron-like elliptical aperture magnitude         [mag]
#   2 rh                  half light radius (analyse)                     [pixel]
#   3 MU_MAX              Peak surface brightness above background        [mag * arcsec**(-2)]
#   4 FWHM_IMAGE          FWHM assuming a gaussian core                   [pixel]
#   5 CLASS_STAR          S/G classifier output                          
18.7462 4.81509 20.1348 6.67273 0.0286538
18.2440 7.17988 20.6454 21.6235 0.0286293
18.3102 3.11273 19.0960 8.26081 0.0430532
21.1751 2.92533 21.9931 5.52080 0.0290418
19.3998 1.86182 19.3166 3.42346 0.986598
20.0801 3.52828 21.3484 6.76799 0.0303842
21.9427 2.08458 22.0577 5.59344 0.981466
20.7726 1.86017 20.8130 3.69570 0.996121
23.0836 2.23427 23.3689 4.49985 0.706207
23.2443 1.62021 23.1089 3.54191 0.973419
20.6343 3.99555 21.9426 6.94700 0.0286164
23.4012 2.00408 23.3412 4.35926 0.946349
23.8427 1.54819 23.8241 3.83407 0.897079
20.3344 2.69910 20.9401 4.38988 0.0355277
21.7506 2.43451 22.2115 4.62045 0.0786921
Run Code Online (Sandbox Code Playgroud)

Tom*_*oft 9

这是Sextractor格式的文件.该astropy.io.ascii 阅读器本身的理解这种格式,所以这是一个单元为:

>>> from astropy.io import ascii
>>> dat = ascii.read('table.dat')
>>> dat
<Table masked=False length=3>
MAG_AUTO    rh       MU_MAX    FWHM_IMAGE CLASS_STAR
  mag            mag / arcsec2    pix               
float64  float64    float64     float64    float64  
-------- ------- ------------- ---------- ----------
 18.7462 4.81509       20.1348    6.67273  0.0286538
  18.244 7.17988       20.6454    21.6235  0.0286293
 18.3102 3.11273        19.096    8.26081  0.0430532
...
Run Code Online (Sandbox Code Playgroud)

请注意,使用astropy ASCII读取器可以获得一个表,该表还保留单元元数据.

如果您仍想将其转换为pandas数据帧,那么也很容易DataFrame(dat.as_array()).版本astropy(和当前的主)的1.1将有方法to_pandasfrom_pandas使这种转换更稳健(见http://astropy.readthedocs.org/en/latest/table/pandas.html).