下面是我的数据框架:
df = pd.DataFrame({"ID" : [1, 1, 2, 2, 2, 3, 3],
"length" : [0.7, 0.7, 0.8, 0.6, 0.6, 0.9, 0.9],
"comment" : ["typed", "handwritten", "typed", "typed", "handwritten", "handwritten", "handwritten"]})
df
ID length comment
0 1 0.7 typed
1 1 0.7 handwritten
2 2 0.8 typed
3 2 0.6 typed
4 2 0.6 handwritten
5 3 0.9 handwritten
6 3 0.9 handwritten
我希望能够执行以下操作:
对于任何一组ID,如果长度相同但注解不同,则使用“键入”公式(5 x长度)计算该组ID的长度,否则使用适用于每个注解的公式计算长度。键入= 5 x长度,手写= 7 x长度。
所需输出如下:
ID length comment Calculated Length
0 1 0.7 typed 5*length
1 1 0.7 handwritten 5*length
2 2 0.8 typed 5*length
3 2 0.6 typed 5*length
4 2 0.6 handwritten 7*length
5 3 0.9 handwritten 7*length
6 3 0.9 handwritten 7*length
- 谢谢-谢谢
2条答案
按热度按时间67up9zun1#
使用
groupby
找到满足特定条件的IDs
。使用IDs
和comment
,使用np.where
计算Calculated length
,如下所示zf9nrax12#
如果注解列只存在打字或手写,则使用
np.where
。输出:
注解后编辑
输出: