Python 基于其他值替换2个选定的行值
我有一个df,看起来像这样:Python 基于其他值替换2个选定的行值,python,python-3.x,pandas,dataframe,data-analysis,Python,Python 3.x,Pandas,Dataframe,Data Analysis,我有一个df,看起来像这样: Id Class Label 0 APPS Item 1 MODEL Item 2 PRICE Money def changeLabelClass(label): if (label == "") mask = modifiedDf['Label'] == "Ite
Id Class Label
0 APPS Item
1 MODEL Item
2 PRICE Money
def changeLabelClass(label):
if (label == "")
mask = modifiedDf['Label'] == "Item"
modifiedDf.loc[mask, 'Class'] = [changeLabelClass(x) for x in modifiedDf.loc[mask, 'Class']]
我想检查标签为项的所有Class
条目。在这些类中,我想用另一个字符串其他
替换所有出现的应用
,并想用另一个字符串替换这些行的标签
,例如软件
我怎样才能做到这一点?我试着这样做:
Id Class Label
0 APPS Item
1 MODEL Item
2 PRICE Money
def changeLabelClass(label):
if (label == "")
mask = modifiedDf['Label'] == "Item"
modifiedDf.loc[mask, 'Class'] = [changeLabelClass(x) for x in modifiedDf.loc[mask, 'Class']]
结果:
Id Class Label
0 OTHERS SOFTWARE
1 MODEL Item
2 PRICE Money
通过&
将链2条件用于按位和
-这里是带有2个值的分配列表,因为选择了2列['Class','Label']
:
mask1 = df['Label'] == "Item"
mask2 = df['Class'] == "APPS"
df.loc[mask1 & mask2, ['Class', 'Label']] = ['OTHERS','SOFTWARE']
print (df)
Id Class Label
0 0 OTHERS SOFTWARE
1 1 MODEL Item
2 2 PRICE Money
在这之后,我尝试打印df或检查值计数,这些值似乎不正确replaced@a125-嗯,原因应该是一个或另一个面具不匹配,是否可以测试它df['m1']=mask1
和df['m2']=mask2
和print(df)