Python 如何对列执行条件操作?

Python 如何对列执行条件操作?,python,pandas,conditional-statements,Python,Pandas,Conditional Statements,我有一个数据帧,我想对MAG列执行条件操作 MAG MagT 2 ML 3.5 mb 6 MC 5.6 mb 4 ML 条件是,如果MagT等于某个特定值,我必须执行一个操作并将值保存在那里 if MagT=='ML' MAG=MAG*5 MagT=='mb' if MagT=='MC' MAG=MAG*3 MagT='ML' . . . else MAG=MAG MagT=MagT 我怎么能这么做 output MAG MagT 10 mb 3.5 mb

我有一个数据帧,我想对
MAG
列执行条件操作

MAG MagT
2   ML
3.5 mb
6   MC
5.6 mb
4   ML
条件是,如果MagT等于某个特定值,我必须执行一个操作并将值保存在那里

if MagT=='ML' 
  MAG=MAG*5
  MagT=='mb'
if MagT=='MC'
 MAG=MAG*3
 MagT='ML'
.
.
.
else 
 MAG=MAG
 MagT=MagT
我怎么能这么做

output
MAG MagT
10  mb
3.5 mb
18  ML
5.6 mb
4   ML

  
 
试试这个:

将熊猫作为pd导入
df=pd.DataFrame([{'a':1,'b':2},{'a':1,'b':2},{'a':1,'b':3}]))
df.loc[df['b']==3,'a']=df['a']*2
试试这个-

>>> import pandas as pd
>>> df = pd.DataFrame({"MAG": [2,3.5,6,5.6,4], "MagT": ["ML","mb","MC","mb","ML"]})
>>> df
   MAG MagT
0  2.0   ML
1  3.5   mb
2  6.0   MC
3  5.6   mb
4  4.0   ML
>>> df.loc[df["ML"],"MagT"] = df["MAG"]*5
>>> df
    MAG MagT
0  10.0   ML
1   3.5   mb
2   6.0   MC
3   5.6   mb
4  20.0   ML

你可以使用numpy.where

import numpy as np
a = np.arange(10)
a
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.where(a < 5, a, 10*a)
# array([ 0,  1,  2,  3,  4, 50, 60, 70, 80, 90])

https://numpy.org/doc/stable/reference/generated/numpy.where.html#numpy.where

堆栈溢出不是为了替换现有的文档和教程。请阅读有关熊猫的可用教程;注意过滤和条件句(where子句)。
df["MAG"] = np.where(df["MagT"]=='ML',df["MAG"]*5,df["MAG"])