我有一个Pandas数据框,其中包含以下列:* foo * 和 * bar 。 foo * 值是整数,* bar * 值是字符串。对于每一行,如果 * bar * 的值是某个特定的值,比如'ABC',那么我想将 * foo * 列(对于该行)的值设置为当前值减1。
例如,我想转换这个数据框:
| 富|棒|
| - ------|- ------|
| 九十八|ABC|
| 五十三|'DEF'|
| 二十二|ABC|
| 三十四|"生长激素"|
转换为:
| 富|棒|
| - ------|- ------|
| 九十七|ABC|
| 五十三|'DEF'|
| 二十一|ABC|
| 三十四|"生长激素"|
这是怎么做到的?
3条答案
按热度按时间mhd8tkvw1#
您可以通过 Dataframe 上的
.loc
执行此操作:vltsax252#
.loc
和np.where
在这里都可以用作可能的解决方案。np.where
的工作方式类似于if-else语句,它检查是否满足条件,在本例中为df['bar'] == 'ABC'
,如果为真,则从df ['foo']中减去1,否则不执行任何操作。gg58donl3#