首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于累积值(而不是实际频率)创建Pandas 2d热图?

基于累积值(而不是实际频率)创建Pandas 2d热图?
EN

Stack Overflow用户
提问于 2013-12-10 23:00:57
回答 1查看 1.1K关注 0票数 2

感谢阅读,我已经花了3-4个小时寻找解决这个问题的例子,但是找不到任何可以解决的问题。我确实尝试过的那些似乎不适用于pandas DataFrame object。任何帮助都将不胜感激!!:)

好了,这是我的问题。

我有一个包含12列的Pandas DataFrame。我有500,000行数据。

大多数列是无用的。我感兴趣的变量/列被称为: x,y和profit

许多x和y点是相同的,所以我想将它们分组为一个唯一的组合,然后将每个唯一组合的所有利润相加。

每个唯一的组合都是一个bin (就像直方图中使用的bin )

然后我想为每个仓位绘制x,y的二维图表/热图等,颜色是总利润。

例如:

x,y,利润

7,4,230.0

7,5162.4

6,8,19.3

7,4,-11.6

7,4,180.2

7,5,15.7

4,3,121.0

7,41162.8

请注意x=7和y=4的值,有3行满足此条件。那么总利润应该是: 230.0 - 11.6 +1162.8 = 1381.2,所以在bin x=7中,y= 4,利润是1381.2

注意:对于值x=7和y=5,有两个实例..总利润应该是: 162.4 + 15.7 = 178.1,所以在bin x=7中,y= 5,利润是178.1

最后,我希望能够绘制: x,y,total_profit_of_bin

例如,为了帮助说明我正在寻找的东西,我在互联网上找到了这个,它与我想要的相似,(忽略轴和数字)

http://2.bp.blogspot.com/-F8q_ZcI-HJg/T4_l7D0C7yI/AAAAAAAAAgE/Bqtx3eIHzRk/s1600/heatmap.jpg

非常感谢您抽出时间来阅读:)

EN

回答 1

Stack Overflow用户

发布于 2013-12-10 23:18:46

如果对于x的'bin‘,其中x的值是相等的,并且y的值是相等的,那么可以使用groupby.agg。它看起来像这样

代码语言:javascript
复制
import pandas as pd
import numpy as np

df = YourData

AggDF = df.groupby('x').agg({'y' : 'max', 'profit' : 'sum'})

AggDF

这将为您提供我认为您需要的数据,然后您可以按您认为合适的方式进行绘图。你也需要帮助吗?

注意:只有在每个“bin”中,即根据x的值分组的数据中,y的值是相等的,这才能以您希望的方式工作。我认为肯定是这样的,否则我认为尝试将x和y放在一起没有多大意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20497783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档