在熊猫集团的条款

时间:2013-05-22 14:20:39

标签: python group-by pandas

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

  1. InPlace Transformation。
  2. 添加所有资金
  3. 如果可能,则获取包含“A”和“Money”列的原始数据帧,而不是“A”作为索引,“Money”作为列。
  4. 输入如下所示。

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

    现在我想根据Cust of Type添加/减去Money列。就像它的“C”然后减去“D”然后添加并滚动到列“A”。所以对于这个例子,它将是

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

1 个答案:

答案 0 :(得分:2)

从您的示例开始

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]以恢复原始数据框架。