Python 2.7 数据帧更新或设置列[y]=x,其中列[z]=&x27;abc&x27;

Python 2.7 数据帧更新或设置列[y]=x,其中列[z]=&x27;abc&x27;,python-2.7,pandas,Python 2.7,Pandas,我是python pandas的新手,在文档中还没有找到答案。我有一个现有的数据框,并添加了一个新的列Y。我想在列Z='xyz'的所有行中将列Y的值设置为'abc'。在sql中,这将是一个简单的过程 update table set colY = 'abc' where colZ = 'xyz' 有没有类似的方法在熊猫身上进行更新 谢谢 您也可以使用或如果需要设置其他值: df.loc[df.Z == 'xyz', 'Y'] = 'abc' 样本: import pandas as pd i

我是python pandas的新手,在文档中还没有找到答案。我有一个现有的数据框,并添加了一个新的列Y。我想在列Z='xyz'的所有行中将列Y的值设置为'abc'。在sql中,这将是一个简单的过程

update table set colY = 'abc' where colZ = 'xyz'
有没有类似的方法在熊猫身上进行更新

谢谢

您也可以使用或如果需要设置其他

df.loc[df.Z == 'xyz', 'Y'] = 'abc'
样本:

import pandas as pd
import numpy as np

df = pd.DataFrame({'X':[1,2,3],
                   'Z':['xyz',5,6],
                   'C':[7,8,9]})

print (df)
   C  X    Z
0  7  1  xyz
1  8  2    5
2  9  3    6

df.loc[df.Z == 'xyz', 'Y'] = 'abc'

print (df)
   C  X    Z    Y
0  7  1  xyz  abc
1  8  2    5  NaN
2  9  3    6  NaN

df['Y1'] = np.where(df.Z == 'xyz', 'abc', 'klm')

print (df)
   C  X    Z    Y   Y1
0  7  1  xyz  abc  abc
1  8  2    5  NaN  klm
2  9  3    6  NaN  klm
也可以使用“设置列值”:

df['Y2'] = np.where(df.Z == 'xyz', 'abc', df.C)
print (df)
   C  X    Z    Y   Y2
0  7  1  xyz  abc  abc
1  8  2    5  NaN    8
2  9  3    6  NaN    9