熊猫按列大小总和分组

m

我有多个巨大的tsv文件,我正在尝试使用熊猫进行处理。我想按“ col3”和“ col5”分组。我已经试过了:

import pandas as pd
df = pd.read_csv('filename.txt', sep = "\t")
g1 = df.groupby(['col3', 'col5']).size()

到目前为止,它工作正常,并输出如下输出:

yes AB12 1
    FG14 1
no  nn18 1
    pp76 1

我希望我的输出像:

yes 2
no  2

我希望能够汇总来自多个文件的输出,即能够一次对所有文件中的这两列进行分组,并打印一个通用输出,总出现次数为“是”或“否”或任何可能的属性。

PS-假设我在col3中有重复项,而col5中有给定值,我希望将它们合并为一个且不计入两次。换句话说,如果AB12有两行,而col5中两行都为yes,我希望脚本将其计为1而不是2。

更新:

我通过执行以下操作删除了重复项:

g2 = df.drop_duplicates(['col3', 'col5'])
g3 = g2.groupby(['col3', 'col5']).size().sum(level=0)
print g3

我现在想一次对多个文件使用groupby。如果文件没有这些列之一,则应将其跳过,然后转到下一个文件。

m

在ajcr的答案和其他代码的帮助下,我能够通过执行以下操作删除基于两列的重复项

import pandas as pd
df = pd.read_csv('filename.txt', sep = "\t")
g2 = df.drop_duplicates(['col3', 'col5'])
g3 = g2.groupby(['col3', 'col5']).size().sum(level=0)
print g3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章