感谢您的阅读,我花了3-4个小时搜索示例来解决此问题,但找不到任何解决方案..我尝试的那些似乎没有使用pandas DataFrame对象..任何帮助非常感谢!! :)
好的,这是我的问题。
我有一个包含12列的Pandas DataFrame。 我有500,000行数据。
大多数列都没用。我感兴趣的变量/列称为:x,y和profit
许多x和y点是相同的, 所以我想将它们分组成一个独特的组合,然后将每个独特组合的所有利润加起来。
每个唯一组合都是一个bin(就像直方图中使用的bin一样)
然后我想为每个箱子绘制x,y的二维图表/热图等,并将颜色绘制为总利润。
e.g。
的x,y,利润
7,4,230.0
7,5,162.4
6,8,19.3
7,4,-11.6
7,4,180.2
7,5,15.7
4,3,121.0
7,4,1162.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,有2个实例..总利润应为:162.4 + 15.7 = 178.1 所以在bin x = 7,y = 5时,利润是178.1
所以最后,我只想绘制:x,y,total_profit_of_bin
e.g。为了帮助说明我正在寻找的东西,我在互联网上找到了它,它与我想要的类似,(忽略轴和数字)
http://2.bp.blogspot.com/-F8q_ZcI-HJg/T4_l7D0C7yI/AAAAAAAAAgE/Bqtx3eIHzRk/s1600/heatmap.jpg
非常感谢您花时间阅读:)
答案 0 :(得分:0)
如果x的值为x的'bin'相等,并且y的值相等,则可以使用groupby.agg。这看起来像这样
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图在一起是没有多大意义的。