Python 2.7 数据帧更新或设置列[y]=x,其中列[z]=&x27;abc&x27;
我是python pandas的新手,在文档中还没有找到答案。我有一个现有的数据框,并添加了一个新的列Y。我想在列Z='xyz'的所有行中将列Y的值设置为'abc'。在sql中,这将是一个简单的过程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
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