我最近经常使用熊猫,遇到了一个小小的僵局。。在
我有一个pandas数据结构,它是从.fits文件中读入的
d = fits.getdata('filename.fits')
df = pd.DataFrame(np.array(d))
df.columns = map(str.lower, df.columns)
包含列名:“n_ser_f2mf1_f850lp”、“n_ser_f3mf2_f850lp”、“mtot_f2mf1_f850lp”、“mtot_f3mf2_f850lp”、“other galaxy characteristics_f3mf2_f850lp”
(如果你感兴趣的话,它包含了适合星系团的星系的Sersic指数的差异,这些星系团是由哈勃太空望远镜(使用过滤器F850LP)在多个视场中拍摄到的-->;f3mf2意味着星系在第3和第2场,所以我们做valueinfield3-valueinfield2)
数据结构/值示例:
^{pr2}$我想将列中包含的数据用作numpy数组,通常我会这样做:
n_ser_residuals = df.n_ser_f2mf1_f850lp.values
这将产生一个数组:
length(array) = numberofgalaxies
array = [ nan, nan, nan, ..., 0.46969998,
1.48409998, 0.08240002]
但是,我将列名作为字符串处理(在不同的值之间循环,例如:
for p in ['f3mf2, 'f2mf1', otheroverlappingfields]:
col0name = 'n_ser_{}_f850lp'.format(p)
col1name = 'mtot_{}_f850lp'.format(p)
etc
所以要访问我使用的值:
n_ser_residuals = (df[col0name].values)
结果是一个长度为1的数组,如下所示:
[array([ nan, nan, nan, ..., 0.46969998,
1.48409998, 0.08240002], dtype=float32)]
为什么这个方法会产生不同的输出?如何将此输出转换为列表?在
对我来说一切都很好(熊猫0.18.1):
相关问题 更多 >
编程相关推荐