gpt4 book ai didi

python - 将第一行 header 的 ascii 文件读入 pandas 数据帧

转载 作者:行者123 更新时间:2023-11-28 19:48:31 25 4
gpt4 key购买 nike

我有一大组目录,其中有不同的列和每列的不同标题名称,其中每个标题名称的描述作为注释在我的 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

最佳答案

这是一个 Sextractor 格式的文件。 astropy.io.ascii reader native 理解这种格式,所以这是一个快速阅读:

>>> 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
...

请注意,使用 astropy ASCII 阅读器,您会得到一个表格,其中还保留了单位元数据。

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

关于python - 将第一行 header 的 ascii 文件读入 pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com