python - 根据另一列的值对 Pandas DF 的一列进行条件操作
问题描述
我有下面的熊猫数据框,有 2 列。
df = pd.DataFrame({'quantity':[15, 30, 35, 20], 'sign':[1,1,2,1]})
quantity
如果该行中的相应值等于 2,我想应用条件语句并将每行中的值乘以-1 sign
。我不想创建新列。我只想将此应用于quantity
列。
我试过使用.loc
and .apply(lamda x:)
,但我一定不能正确应用它们。任何帮助表示赞赏。
解决方案
使用DataFrame.loc
with mask bySeries.eq
表示相等,使用 multiby 标量:
df = pd.DataFrame({'quantity':[15, 30, 35, 20], 'sign':[1,1,2,1]})
df.loc[df['sign'].eq(2), 'quantity'] *= - 1
print (df)
quantity sign
0 15 1
1 30 1
2 -35 2
3 20 1
推荐阅读
- genetic-algorithm - 如何在遗传算法中输入三个不同顺序的任务?
- logging - Veracode 问题:日志的输出中和不当
- javascript - switch 语句不响应条件
- java - Hyperledger Fabric Java SDK 客户端程序太慢而无法终止
- wpf - 从 Service do ViewModel 传递数据
- docker - 使用 docker swarm 覆盖网络性能问题
- ios - EXC_CRASH (SIGABRT) CLSBetaController
- go - 编译器是否优化变量声明?
- android - 使用分页库在 recyclerView 上显示数据
- java - 如何在同一输入日期上添加日期和时间?