1

我正在尝试找到可以执行以下操作的 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”列。所以对于这个例子,它将是

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

4

1 回答 1

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]以恢复原始 DataFrame,完好无损。

于 2013-05-22T15:09:09.987 回答