【问题标题】:Pandas - calculating interaction between buyers and sellersPandas - 计算买卖双方之间的互动
【发布时间】:2014-04-15 01:49:17
【问题描述】:

所以我遇到了一个编程问题,我觉得这有点挑战性。我有几年的每日数据(位于 Pandas DataFrame 中)关于买家和卖家 ala。这个:

            Seller  Buyer   Amount  
2012/11/13  Bank1   Bank2   15                              
2012/11/13  Bank1   Bank2   17             
2012/11/13  Bank5   Bank3   5              
2012/11/14  Bank4   Bank2   10                  
2012/11/14  Bank1   Bank3   22      

索引是 Pandas.DatetimeIndex。

我想按月计算每个购买银行在每月总交易量中的份额来自与他们互动的每个卖家。因此,在上述情况下,输出(最好也是 DataFrame)将是:

Month       Seller  Buyer   Share   
2012/11     Bank1   Bank2   32/42                               
2012/11     Bank4   Bank2   10/42              
2012/11     Bank5   Bank3   5/27               
2012/11     Bank1   Bank3   22/27               

非常感谢任何输入!

【问题讨论】:

  • 您想要的输出似乎与您的输入不匹配。
  • 同意帝斯曼。我的代码得到了其他东西。 @DSM,请给我一个回答的机会,如果你足够友善的话! :D
  • 抱歉,有点草率。我已经编辑了我的问题,所以现在应该是正确的。

标签: python-2.7 pandas


【解决方案1】:

我已将 IPython 笔记本上传到 Github,它应该开始回答您的问题。你可以找到它here

这里的基本方法是进行DataFrame.groupby() 操作。使用您提供的虚拟数据,我首先做了data.groupby('Buyer').sum(),将索引重置为买家,将总和作为“总计”列加回,最后除以。

我不太确定如何做时间序列的东西(即当你只有完整的日期信息而不是年月日时按月分组)。如果其他人有建议,请发表评论,以便我更新笔记本和我的答案!

【讨论】:

  • 谢谢!我按照你的建议使用 groupby 解决了这个问题,再加上 .resample('M', how='sum'),这显然是几个月的总和。稍后会上传完整代码
  • 我的荣幸。也感谢您的resample 评论!期待看到您的完整代码!如果你还没有开始使用 IPython 的 notebook,我也会推荐它。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2013-03-08
  • 2012-10-03
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2014-09-18
  • 2017-07-19
相关资源
最近更新 更多