首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从python中的空白表中获取数据

如何从python中的空白表中获取数据
EN

Stack Overflow用户
提问于 2022-02-01 03:07:49
回答 1查看 43关注 0票数 0

我有一个带有一些字符串的表,但是有一些空变量。因此,在这些空白之后,我无法得到特定的行。我的表看起来像(连字符在实表中为空白):

1 2 3 4 5-1-

B 12 2--3 7-2克

C--- 12 -2---1

因此,我想将列放入列表中,如

list1=1 2-

list2=2 - 12

list3=3 --

list4=5 7-

表5=

这是我的密码:

代码语言:javascript
复制
from astroquery.simbad import Simbad
import astropy.coordinates as coord
from astropy import units as u
from astropy.coordinates import SkyCoord
import pandas as pd
import astropy.units as u
from astropy import coordinates






column_names = ["#paper", "Object", "RA","Ra2","DEC","Dec2"]
data=pd.read_csv("jwebb.tsv", sep = '\t', names=column_names)

STARS=data.Object.to_list()
RA=data.RA.to_list()
DEC=data.DEC.to_list()
"""RA2=
DEC2="""
POS = [i+' '+k for i, k in zip(RA,DEC)]



customSimbad = Simbad()
customSimbad.add_votable_fields('flux(V)','flux(U)','flux(B)','flux(R)','flux(I)','flux(J)','flux(H)','flux(K)','flux(u)','flux(g)','flux(r)','flux(i)','flux(z)')
customSimbad.get_votable_fields()

onames=[]
mag1=[]
mag2=[]
mag3=[]
mag4=[]
mag5=[]
mag6=[]
mag7=[]
mag8=[]
mag9=[]
mag10=[]
mag11=[]
mag12=[]
mag13=[]



rad1='0.001s'
rad2='0.01s'
rad3='.1s'


for i in range(len(RA)):
        result_table = customSimbad.query_region(coord.SkyCoord(ra=RA[i], dec=DEC[i], unit=(u.hourangle, u.deg)), radius=rad1)
        if result_table is None:
            result_table = customSimbad.query_region(coord.SkyCoord(ra=RA[i], dec=DEC[i], unit=(u.hourangle, u.deg)), radius=rad2)
            if result_table is None:
                result_table = customSimbad.query_region(coord.SkyCoord(ra=RA[i], dec=DEC[i], unit=(u.hourangle, u.deg)), radius=rad3)
        if result_table is None:
            onames.append('none')
           
        else:    
            onames.append(result_table[0][:])

所以我想把特定的列放到mag1,mag2,mag3中。等等,如果表中没有值,我想将该值的0放入列表中。

EN

回答 1

Stack Overflow用户

发布于 2022-02-01 03:26:22

如果我明白的话,你就告诉我们:

代码语言:javascript
复制
a - 1 2 3 4 5 - 1 -

b 12 2 - - 3 7 - 2 g

c - - 12 - 2 - - - 1

这实际上是:

代码语言:javascript
复制
a   1 2 3 4 5   1  

b 12 2     3 7   2 g

c     12   2       1

那我就会做:

代码语言:javascript
复制
data = 'a   1 2 3 4 5   1  \n\
b 12 2     3 7   2 g \n\
c     12   2       1 '

print (data) # Your raw space-separated data with empty fields as space.

print()

print(data.replace('  ', ' 0')) # Space-separated data with empty fiels as zero.

输出:

代码语言:javascript
复制
a   1 2 3 4 5   1  
b 12 2     3 7   2 g 
c     12   2       1 

a 0 1 2 3 4 5 0 1 0
b 12 2 0 0 3 7 0 2 g 
c 0 0 12 0 2 0 0 0 1 

所以问题仍然存在:你为什么要处理这个问题?只需在流程中上游设置一个默认值就可以了,因为即使这样做可能有效,但这是非常糟糕的做法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70935182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档