次のパターンに転置/回転するには、AwkまたはUnixスクリプトが必要です。

次のパターンに転置/回転するには、AwkまたはUnixスクリプトが必要です。

ファイルには次の形式のデータが含まれます(最初の行はヘッダーです)。

N ; A ; B 
=========
1 ; 01;02 
2; 02;02 

最初の列に基づいて、次の出力が予想されます。 N列は同じままですが、他の列は増やしてC、D、Eなどにすることができ、その値をキャプチャできます。

1;A;01 
2;A;02
1:B;02
2;B;02 

どうすればいいですか?

ベストアンサー1

以下はPythonを使ったコードスニペットです。

パスワード:

# read in the data
with open('data_file', 'rU') as f:
    # read in the header
    header = [x.strip() for x in f.readline().split(';')]

    # drop the ======
    dump_marker = f.readline()

    # get the rest of the data
    data = [[x.strip() for x in line.split(';')] for line in f.readlines()]

# print the data in new format
for i, col in enumerate(header[1:]):
    for line in data:
        print("{};{};{}".format(line[0], col, line[i+1]))

データファイル:

N ; A ; B
=========
1 ; 01;02
2 ; 02;02

結果:

1;A;01
2;A;02
1;B;02
2;B;02

おすすめ記事