根据行条件计算(pandas)

问题描述 投票:0回答:1

我遇到了以下问题:我有一个看起来像这样的 pandas 数据框。

| id_tranc |    sum           |  bid |
|:------- |----:|:----------:|--------:|
|    1|4000|2.3%|
|    1|20000|3.5%|
|    2|100000  |if >=100 000 - 1.6%, if < 100 000 - 100$ |
|    3|30000| if >=100 000 - 1.6%, if < 100 000 - 100$|
|    1|60000|500$|

需要计算“佣金”,具体取决于“总和”和“出价”列。最终数据框应如下所示:

| id_tranc |    sum           |  bid | comission|
|:------- |----:|:----------:|--------:|---:|
|    1|4000|2.3%| 92
|    1|20000|3.5%| 700
|    2|100000  |if >=100 000 - 1.6%, if < 100 000 - 100$ | 1600
|    3|30000| if >=100 000 - 1.6%, if < 100 000 - 100$| 100
|    1|60000|500$| 500

如果使用

df['commission'] = df['sum'] * df['bid']
计算 - 仅获取前 2 条记录的结果。请告诉我如何正确执行此操作。

python pandas calculated-columns
1个回答
0
投票

为了计算第三列的值,另外两列必须包含数字(整数或浮点数)。

第三个数据行中的这个值不是数字,因此您不能与它相乘:

如果 >=100 000 - 1.6%,如果 < 100 000 - 100$

您的其他“出价”值(“2.3%”等)也不是数字。它们的格式应为 0.023 以用于乘法。不确定你是如何正确获得前两行的。

© www.soinside.com 2019 - 2024. All rights reserved.