![](/img/trans.png)
[英]Reading web page tabular data --> pandas lib --> error : forbidden
[英]Pandas: IndexError reading tabular data
我有一个表格数据文件,如下所示:
ID Ah Am RAs Ed Em DEs Vmag U-B B-V V-I e_ e_ e_ e_ _ _ _ _ mb n_ 2MASS
1 10 42 57.6 -59 47 22.6 18.681 1.105 1.461 0.002 0.103 0.053 2 0 1 2 10425765-5947229
2 10 42 57.7 -59 44 22.2 18.303 2.764 0.012 0.013 2 0 0 2
3 10 42 57.7 -59 46 58.0 18.610 1.573 0.038 0.039 2 0 0 2 10425776-5946583
4 10 42 57.8 -59 47 49.5 12.870 0.764 0.799 0.009 0.009 0.009 3 0 1 3 10425773-5947495
5 10 42 57.8 -59 44 03.4 18.815 1.072 1.433 0.017 0.110 0.043 2 0 1 2
6 10 42 57.8 -59 48 29.3 18.697 1.304 0.014 0.019 2 0 0 2 10425778-5948293
7 10 42 57.8 -59 44 08.5 17.817 1.700 2.384 0.011 0.108 0.013 2 0 1 2 10425786-5944083
我正在尝试获取并打印出标记为Vmag
的列中的所有值,但是当我尝试
df = pd.read_table('Hur_et_al_2012_catalog/table1.dat')
print(df.iloc[:, 7])
我得到了IndexError
。 任何建议将不胜感激。
看起来您有一个固定宽度的格式化表格, pandas 有一个 function 来阅读这些通常不需要额外调整的内容: pd.read_fwf
。
鉴于:
text = ''' ID Ah Am RAs Ed Em DEs Vmag U-B B-V V-I e_ e_ e_ e_ _ _ _ _ mb n_ 2MASS
1 10 42 57.6 -59 47 22.6 18.681 1.105 1.461 0.002 0.103 0.053 2 0 1 2 10425765-5947229
2 10 42 57.7 -59 44 22.2 18.303 2.764 0.012 0.013 2 0 0 2
3 10 42 57.7 -59 46 58.0 18.610 1.573 0.038 0.039 2 0 0 2 10425776-5946583
4 10 42 57.8 -59 47 49.5 12.870 0.764 0.799 0.009 0.009 0.009 3 0 1 3 10425773-5947495
5 10 42 57.8 -59 44 03.4 18.815 1.072 1.433 0.017 0.110 0.043 2 0 1 2
6 10 42 57.8 -59 48 29.3 18.697 1.304 0.014 0.019 2 0 0 2 10425778-5948293
7 10 42 57.8 -59 44 08.5 17.817 1.700 2.384 0.011 0.108 0.013 2 0 1 2 10425786-5944083'''
正在做:
from io import StringIO
df = pd.read_fwf(StringIO(text))
print(df.iloc[:, 7])
print(df)
# Output:
0 18.681
1 18.303
2 18.610
3 12.870
4 18.815
5 18.697
6 17.817
Name: Vmag, dtype: float64
ID Ah Am RAs Ed Em DEs Vmag U-B B-V V-I e_ e_.1 e_.2 e_.3 _ _.1 _.2 _.3 mb n_ 2MASS
0 1 10 42 57.6 -59 47 22.6 18.681 NaN 1.105 1.461 0.002 NaN 0.103 0.053 2 0 1 2 NaN NaN 10425765-5947229
1 2 10 42 57.7 -59 44 22.2 18.303 NaN NaN 2.764 0.012 NaN NaN 0.013 2 0 0 2 NaN NaN NaN
2 3 10 42 57.7 -59 46 58.0 18.610 NaN NaN 1.573 0.038 NaN NaN 0.039 2 0 0 2 NaN NaN 10425776-5946583
3 4 10 42 57.8 -59 47 49.5 12.870 NaN 0.764 0.799 0.009 NaN 0.009 0.009 3 0 1 3 NaN NaN 10425773-5947495
4 5 10 42 57.8 -59 44 3.4 18.815 NaN 1.072 1.433 0.017 NaN 0.110 0.043 2 0 1 2 NaN NaN NaN
5 6 10 42 57.8 -59 48 29.3 18.697 NaN NaN 1.304 0.014 NaN NaN 0.019 2 0 0 2 NaN NaN 10425778-5948293
6 7 10 42 57.8 -59 44 8.5 17.817 NaN 1.700 2.384 0.011 NaN 0.108 0.013 2 0 1 2 NaN NaN 10425786-5944083
所以,试试pd.read_fwf
:
df = pd.read_fwf('Hur_et_al_2012_catalog/table1.dat')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.