python - Pandas 中的 Groupby 子句

标签 python group-by pandas

我正在尝试找到可以执行以下操作的 GroupBy 子句(在 PANDAS DATAFRAME 中)。

  1. 就地转型。
  2. 添加所有资金
  3. 如果可能的话,获取包含“A”列和“Money”列的原始数据框,而不是“A”作为索引、“Money”作为列。

输入如下。

dataframe = pandas.DataFrame({'A':[11,11,22,22],
                              'Cust':['C','D','C','C'],
                              'Money':np.arange(10,30,5)})

现在我想根据客户类型添加/减去货币列。就像如果它的“C”然后减去,而“D”然后添加并滚动到“A”列。所以对于这个例子来说它将是

对于“11”中的 A,金钱是“5” 对于 B,如“22”,金钱为“-45”

最佳答案

从你的例子开始

In [16]: df
Out[16]: 
    A Cust  Money
0  11    C     10
1  11    D     15
2  22    C     20
3  22    C     25
  1. 根据 Cust 是 C 还是 D 来设置 Money 的符号,如您所描述的。

    In [17]: df['Money'][df['Cust'] == 'C'] *= -1
    
  2. 对金额进行求和,按“A”列分组。

    In [18]: df.groupby('A').sum()
    Out[18]: 
        Money
    A        
    11      5
    22    -45
    
  3. 再次运行 In [17] 以完整恢复原始 DataFrame。

关于python - Pandas 中的 Groupby 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16694270/

相关文章:

python - golang <--> python 通信的最简单的 pub-sub 通信,可能跨机器?

MySQL 删除分组依据

python - 单个 Dataframe 单元格中系列的最大值

python-3.x - 如何摆脱 Python Pandas 中的斜体并获取纯文本?

python - 使用matplotlib在python中通过数据列表分别绘制直方图

javascript - 使用前端 javascript 访问绑定(bind)到 Bokeh 字形的数据

mysql - 从四个带有 count 和 sum 列以及 where 子句的 mysql 表中进行选择

mysql - 在 GROUP 中按条件显示元素

python - 如何在 Windows Server 2012 上使用 "OverflowError: Python int too large to convert to C long"错误进行转换?

python - 如何切片以日期字段为索引的数据框?