2

以下の形式のデータファイルがあります。

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

出力

('column_1', 'column_2', 'column3', 'column4', 'column_5', 'column_6')

Pythonで列3と4のハイフンを取り戻す方法は?

4

2 に答える 2

0

ヒント -正規表現を使用して列のデータを抽出できます。上記の場合、式は次のようになりますexp = r'column.\d'

于 2015-06-10T13:04:50.610 に答える
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')
于 2015-06-10T13:58:22.243 に答える