Python 难以选择特定行并与特定列合并
我有一个文本文件,我有这样的数据 文本文件1Python 难以选择特定行并与特定列合并,python,python-2.7,Python,Python 2.7,我有一个文本文件,我有这样的数据 文本文件1 ?Cricket|Batsman|EK Batsman play cricket for batting ?Cricket|Football|E9 Sequence unavailable ?Cricket|Hockey|EN Sequence unavailable 我只想复制序列不可用的数据以及最后一列EN 所需输出 Sequence unavailable|E9 Sequence unavailable|EN 我不知道如何只选择序列不可用的
?Cricket|Batsman|EK
Batsman play cricket for batting
?Cricket|Football|E9
Sequence unavailable
?Cricket|Hockey|EN
Sequence unavailable
我只想复制序列不可用的数据
以及最后一列EN
所需输出
Sequence unavailable|E9
Sequence unavailable|EN
我不知道如何只选择序列不可用的特定数据,我标记了最后一列,但很难只选择带有问题编号的序列不可用
,如何:
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
用“|”分隔符将第二、第四、第六排加入第一排对您来说是多么困难。
如果不是那么难,那么我有一个快速而肮脏的解决方案
修改后的数据看起来像
比赛|球员|局数|结果
板球|击球手| EK |击球手打板球是为了击球
板球|足球| E9 |序列不可用
板球|曲棍球| EN |序列不可用
代码看起来像
import pandas as pd
a = pd.read_csv("test.txt",sep="|")
c = a[a["Result"] != "Sequence unavailable"]
您是否只需要“序列不可用”时的数据?那么也许这会帮助你:
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")
是否总是每两行写一次?请在你的问题中添加你尝试过的内容。