我有一张桌子:
vals = table.iloc[sum(which(pa_i),[1]),1:]
含量:
Out[249]:
1 2 3
2 NA [1] (16.0 to N/A) 12.0 [2] NA [1]
当我写vals.values
时,我得到:
vals
Out[250]: array([['NA\xa0[1] (16.0\xa0to\xa0N/A)', '12.0\xa0[2]', 'NA\xa0[1]']], dtype=object)
我只想将此表格放到数组或列表中,但之前想要替换\xa0
值。申请时:
v = print(map(lambda s: s.replace('\xa0' , ' '), vals))
我不知道如何阅读此对象或何时阅读
np.char.replace(vals[0],'\xa0' , ' ')
我收到错误“TypeError:非字符串数组上的字符串操作”。
将内容转换为数组或替换不需要的字符的最简单方法是什么?
修改
我有一个解决方案:v = vals.astype('str')
和v = np.char.replace(v,'\xa0' , ' ')
。
Out[306]: array([['NA [1] (16.0 to N/A)', '12.0 [2]', 'NA [1]']], dtype='<U20')
但我对这个答案并不完全满意。我需要一些东西直接在vals
变量上工作 - 例如通过这样做:
a = vals[1:].toarray(?)
预期结果:
a
Out[318]: ['(16.0 to N/A)', '12.0 [2]', 'NA [1]]']
答案 0 :(得分:0)
好吧,因为它包含int
个元素,而不是str
这样做:
table.values = [str(v) for v in table.values]
答案 1 :(得分:0)
我找到了最好的方法:
vals
Out[357]:
1 2 3
2 NA [1] (16.0 to N/A) 12.0 [2] NA [1]
a = vals.values.tolist()
a
Out[358]: [['NA\xa0[1] (16.0\xa0to\xa0N/A)', '12.0\xa0[2]', 'NA\xa0[1]']]
a1 = [w.replace('\xa0', ' ') for w in a[0]]
a1
Out[359]: ['NA [1] (16.0 to N/A)', '12.0 [2]', 'NA [1]']
Pffff。也许在编码习惯方面不是最漂亮的,但我们能做些什么。