0

私はこのようなデータを持っているテキストファイルを持っています

テキストファイル1

?Cricket|Batsman|EK
Batsman play cricket for batting
?Cricket|Football|E9
Sequence unavailable
?Cricket|Hockey|EN
Sequence unavailable

Sequence unavailable最後の列に指定された質問番号と一緒にあるデータのみをコピーしたいEN

必要な出力

Sequence unavailable|E9
Sequence unavailable|EN

の特定のデータのみを選択する方法がわかりませんSequence unavailable。最後の列すべてにタグを付けますがSequence unavailable、質問番号でのみを選択するのは困難です

4

3 に答える 3

0

2 行目、4 行目、6 行目を 1 行目に「|」でつなぐのはどれくらい難しいですか? セパレータ。それほど難しくない場合は、迅速で汚い解決策があります。

変更されたデータは次のようになります。

試合|選手|イニング|結果

クリケット|バッツマン|EK|バッティングのためにクリケットをするバッツマン

クリケット|フットボール|E9|シーケンスは利用できません

クリケット|ホッケー|EN|シーケンスは利用できません

そして、コードは次のようになります...

import pandas as pd

a = pd.read_csv("test.txt",sep="|")

c = a[a["Result"] != "Sequence unavailable"]
于 2013-07-10T14:14:41.193 に答える
0

「シーケンスが利用できない」場合にのみデータが必要ですか? 次に、これが役立つかもしれません:

with open("input.txt", "r") as f:
    s = f.read()

output, lines = [], (line for line in s.split("\n"))

for line in lines:
    if line.startswith("?"):
        data = next(lines)
        if data == "Sequence unavailable":
            output.append("{data}|{qn}".format(data=data, qn=line.split("|")[-1]))

with open("output.txt", "w") as f:
    for line in output:
        f.write(line + "\n")
于 2013-07-10T14:15:01.633 に答える
0

これはどう:

lastline = None

with open('test.txt', 'r') as f:
    for line in f.readlines():
        if not lastline:
            lastline = line.rstrip('\n')
            continue
        if line.rstrip('\n') == 'Sequence unavailable':
            _, _, id = lastline.split('|')
            print 'Sequence unavailable|' + id
        lastline = None
于 2013-07-10T14:13:28.643 に答える