我有一个大文本文件,例如这个小例子:
小例子:
AAMP chr2 219130810 219134433 transcript
AAMP chr2 219132103 219134868 transcript
AARS chr16 70286198 70323446 transcript
AARS chr16 70287359 70292118 transcript
AARS chr16 70286198 70323446 transcript
AAMP chr2 219130810 219134433 transcript
AARS2 chr6 44267391 44281063 transcript
我想基于3列(columns 2, 3 and 4
)对行进行分组。实际上,如果columns 2, 3 and 4
中有2条或更多行具有相同的值,我只想获得其中的一行。对于小示例,预期输出将如下所示:
AAMP chr2 219130810 219134433 transcript
AAMP chr2 219132103 219134868 transcript
AARS chr16 70286198 70323446 transcript
AARS chr16 70287359 70292118 transcript
AARS2 chr6 44267391 44281063 transcript
我正在尝试使用python
在pandas
中进行此操作。如下:
data = pd.read_csv("myfile")
df = pd.DataFrame(data)
res = df.groupby([0, 1, 2])
res.to_csv('outfile.txt', index=False)
,但不会返回正确的结果。你知道如何解决吗?
答案 0 :(得分:0)
我发布的链接已经有答案,但是可以解决这个特定的类似问题
std::begin(result)
输出:
import pandas as pd
a='''AAMP chr2 219130810 219134433 transcript
AAMP chr2 219132103 219134868 transcript
AARS chr16 70286198 70323446 transcript
AARS chr16 70287359 70292118 transcript
AARS chr16 70286198 70323446 transcript
AAMP chr2 219130810 219134433 transcript
AARS2 chr6 44267391 44281063 transcript'''
df=pd.DataFrame([i.split(' ') for i in a.split('\n')])
df.groupby([0,1,2]).first().reset_index()