Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于其他值替换2个选定的行值_Python_Python 3.x_Pandas_Dataframe_Data Analysis - Fatal编程技术网

Python 基于其他值替换2个选定的行值

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

我有一个df,看起来像这样:

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)