我正在尝试找到可以执行以下操作的 GroupBy 子句(在 PANDAS DATAFRAME 中)。
- 就地转型。
- 添加所有资金
- 如果可能的话,获取包含“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
根据 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]
以完整恢复原始 DataFrame。
关于python - Pandas 中的 Groupby 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16694270/