在panda中总结一个制表符分隔的文件



我有一个大的tab separated文件,如下所示:

small example:

CHTOP   237 122
CHTOP   64  53
CHTOP   64  122
RPS27   986 66
RPS27   986 50
RPS27   986 227

我想根据第一列对行进行分组,并对第二列中属于同一组的所有数字求和,对第三列中的数字也这样做。例如,我们有两组预期输出为:

expected output:

CHTOP   365 297
RPS27   2958    343

我在python中使用了pandas,但它不返回3列文件。

import pandas as pd
df = pd.read_csv('myfile.txt',sep=None)
df = df.groupby(['ID']).cumcount()
df.to_csv('result.txt', sep='t', index=None)

你知道怎么修吗?

几个观察结果:

  1. 由于myfile.txt中没有头行,我们需要将其告知pandas,否则第一行将被视为头
  2. 由于列是未命名的,因此不存在'ID'列。若要按ID对行进行分组,请改用列的编号(0(
  3. 要对属于同一组的行求和,请使用sum(),而不是cumcount()

此外,最好明确声明myfile.txt是制表符(而不是逗号(分隔的,因为C引擎无法自动检测分隔符。

以下是一个建议的解决方案:

import pandas as pd
df = pd.read_csv('myfile.txt', sep='t', header=None)
df = df.groupby(0).sum()
df.to_csv('result.txt', sep='t', header=None)

最新更新