我正在尝试找到可以执行以下操作的GroupBy子句(在PANDAS DATAFRAME中)。
输入如下所示。
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”
答案 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
根据您描述的Cust是C还是D来设置Money的符号。
In [17]: df['Money'][df['Cust'] == 'C'] *= -1
汇总金额,按“A”栏分组。
In [18]: df.groupby('A').sum()
Out[18]:
Money
A
11 5
22 -45
再次运行In [17]
以恢复原始数据框架。