我有多个巨大的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。如果文件没有这些列之一,则应将其跳过,然后转到下一个文件。
在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] 删除。
我来说两句