Python 从数据帧中提取对的最新方法

Python 从数据帧中提取对的最新方法,python,python-2.7,dictionary,pandas,Python,Python 2.7,Dictionary,Pandas,给定以下数据帧: mydf = pd.DataFrame([{'Campaign': 'Campaign X', 'Date': '24-09-2014', 'Spend': 1.34, 'Clicks': 241}, {'Campaign': 'Campaign Y', 'Date': '24-08-2014', 'Spend': 2.89, 'Clicks': 12}, {'Campaign': 'Campaign X', 'Date': '24-08-2014', 'Spend': 1.2

给定以下数据帧:

mydf = pd.DataFrame([{'Campaign': 'Campaign X', 'Date': '24-09-2014', 'Spend': 1.34, 'Clicks': 241}, {'Campaign': 'Campaign Y', 'Date': '24-08-2014', 'Spend': 2.89, 'Clicks': 12}, {'Campaign': 'Campaign X', 'Date': '24-08-2014', 'Spend': 1.20, 'Clicks': 1}, {'Campaign': 'Campaign Z2', 'Date': '24-08-2014', 'Spend': 4.56, 'Clicks': 13}] )

我希望首先提取活动支出对,当一个活动有多个条目时(如本例中的活动X),在适用的情况下,首先求和。以最少的知识,我发现自己在做:

summed = mydf.groupby('Campaign', as_index=False).sum()
campaignspends = zip(summed['Campaign'], summed['Spend'])
campaignspends = dict(campaignspends)

我猜pandas或python本身对此有一行代码?

您可以使用
[“花费”]
从groupby对象中拉出感兴趣的列:

在这里,我将
添加到了_dict()
调用(
dict(mydf..etc)
也会起作用),不过请注意,根据您下一步的计划,您可能根本不需要从一个系列转换到一个字典。比如说,

>>> s = mydf.groupby("Campaign")["Spend"].sum()
>>> s["Campaign Z2"]
4.5599999999999996
正如你所期待的那样

>>> s = mydf.groupby("Campaign")["Spend"].sum()
>>> s["Campaign Z2"]
4.5599999999999996