Python 在数据帧中对相等项进行分组和求和

Python 在数据帧中对相等项进行分组和求和,python,pandas,csv,count,unique,Python,Pandas,Csv,Count,Unique,我有一个CSV文件,其中包含多个数据行与其他行及其计数相同。我需要计算所有这些唯一跟踪,并使用更新的唯一数据更新现有计数列 我已经添加了我尝试过的代码,但它没有提供所需的输出 final_count = combined_csv.groupby(['Context Event','Actual Event']).size().reset_index().rename(columns={0:'count'}) 假设输入数据是这样的-- 上下文事件实际事件频率计数 FindApplication

我有一个CSV文件,其中包含多个数据行与其他行及其计数相同。我需要计算所有这些唯一跟踪,并使用更新的唯一数据更新现有计数列

我已经添加了我尝试过的代码,但它没有提供所需的输出

final_count = combined_csv.groupby(['Context Event','Actual Event']).size().reset_index().rename(columns={0:'count'})
假设输入数据是这样的--

上下文事件实际事件频率计数
FindApplication_Explorer.EXE左键单击_Explorer.EXE 4
左键单击\u Explorer.EXE FindApplication\u chrome.EXE 3
FindApplication_chrome.exe FindApplication_Explorer.exe 2
FindApplication_Explorer.EXE左键单击_Explorer.EXE 1
FindApplication_Explorer.EXE左键单击_Explorer.EXE 2

FindApplication\u chrome.exe FindApplication\u Explorer.exe 2
我使用了以下代码片段来获得所需的结果。这里要使用的重要内容是,首先指定CSV分隔符,在您的情况下它是一个
\t(TAB)
,其次使用
skipinitialspace
,它将从列名中删除尾随空格

from io import StringIO
import pandas

input_string = StringIO(
  """
  Context Event\t                       Actual Event\t         Frequency Count\t
  FindApplication_Explorer.EXE\t    LeftClick_Explorer.EXE\t          4\t
  LeftClick_Explorer.EXE\t          FindApplication_chrome.exe\t      3\t
  FindApplication_chrome.exe\t      FindApplication_Explorer.EXE\t    2\t
  FindApplication_Explorer.EXE\t    LeftClick_Explorer.EXE\t          1\t
  FindApplication_Explorer.EXE\t    LeftClick_Explorer.EXE\t          2\t
  FindApplication_chrome.exe\t      FindApplication_Explorer.EXE\t    2\t
  """
)


dataframe = pandas.read_csv(input_string, sep="\t", skipinitialspace=True)
dataframe.set_index(['Context Event', 'Actual Event'])
print(
    dataframe.groupby(
      [
        'Context Event',
        'Actual Event']
    )['Frequency Count'].sum().reset_index(name='Total Amount')
)
我得到的输出如下

                  Context Event                  Actual Event  My Sum
0  FindApplication_Explorer.EXE        LeftClick_Explorer.EXE       7
1    FindApplication_chrome.exe  FindApplication_Explorer.EXE       4
2        LeftClick_Explorer.EXE    FindApplication_chrome.exe       3

请使用以下内容来说明或修改此示例。

我无法将csv数据中的数据放入代码中,因为它包含大约10000行。因此,有任何其他方法可以获取输出。您可以从类似于So
dataframe=pandas.read\u csv(“my_filename.csv”,sep=“\t”,skipinitialspace=True)的文件中读取csv。
,这有帮助吗?我已经编辑了我的答案,但是我将返回的数据框中的sum列名称重命名为
my sum
,只是为了明确这实际上是一个新列。Error KeyError:“Context Event”在运行此行数据框时。设置索引(['Context Event',Actual Event'])是,由于复制/粘贴列之间的选项卡而被删除。我将再次更新解决方案并放置repl.it链接。
from io import StringIO
import pandas

# Use anis csv file
dataframe = pandas.read_csv('ani_data.csv', sep=',')

print(dataframe)

dataframe.set_index(['Context Event', 'Actual Event'])
print(
dataframe.groupby(['Context Event','Actual Event'])['Frequency Count'].sum().reset_index(name='Count'))