如何在Python中替换dtype.names中的某些符号?

时间:2015-06-10 12:57:54

标签: python numpy replace genfromtxt

我有一个下面给出的表格的数据文件:

private void myCustomControl_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e) 
{
    e.Handled = true;
}

当我导入以下文件时,带有空格的标题名称将自动替换为下划线,我将其替换为空格。但是如何保留连字符。我使用的代码是:

column_1    column 2    column-3    column-4    column_5    column 6
1   2   3   1   2   3
4   3   2   3   2   4
1   4   3   1   4   3
5   6   4   5   6   4

输出

import numpy as np
with open('data.dat', 'rb') as f:
    header = f.readline().split('\t')
    arr = np.genfromtxt(f, names = header, comments='#', delimiter='\t', dtype=None)
arr.dtype.names = [j.replace('_', ' ').replace('-', ' ') for j in arr.dtype.names]
print arr.dtype.names

如何在Python中找回第3列和第4列的连字符?

2 个答案:

答案 0 :(得分:0)

提示 - 您可以使用 正则表达式 来提取列中的数据,对于上述情况,表达式将类似于此exp = r'column.\d'

答案 1 :(得分:0)

确保您的标题在文件中以\t分隔:

import numpy as np
with open('data.dat', 'rb') as f:
    header = f.read().split("\n")[0].split("\t")
    arr = np.genfromtxt(f, names = header,comments='#', delimiter='\t', dtype=object)
arr.dtype.names = [j.replace('_', ' ') if j[:-1]+"-"+j[-1] not in header else j[:-1]+"-"+j[-1] for j in arr.dtype.names]
print arr.dtype.names

>> ('column 1', 'column 2', 'column-3', 'column-4', 'column 5', 'column 6')