Python 根据表中的条件删除列中的值
我有一个如下所示的数据帧。如果列(HW类别)中的值为“19.超出保修期,过期”,则我希望清空列(IO Stat)中的值。我们如何才能达到这个结果 实际数据帧:Python 根据表中的条件删除列中的值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个如下所示的数据帧。如果列(HW类别)中的值为“19.超出保修期,过期”,则我希望清空列(IO Stat)中的值。我们如何才能达到这个结果 实际数据帧: ,IO Stat,HW Category 0,Disabled,"19. Out of Warranty, Expired" 1,Disabled,In Use 2,Disabled,In Use 3,Disabled,Onsite 4,Disabled, 5,Disabled, 6,Disabled, 7,Disab
,IO Stat,HW Category
0,Disabled,"19. Out of Warranty, Expired"
1,Disabled,In Use
2,Disabled,In Use
3,Disabled,Onsite
4,Disabled,
5,Disabled,
6,Disabled,
7,Disabled,"19. Out of Warranty, Expired"
8,Disabled,
9,Disabled,
10,Disabled,In Use
11,Disabled,In Use
12,Disabled,Onsite
13,Disabled,
14,Disabled,
15,Disabled,
16,Disabled,"19. Out of Warranty, Expired"
17,Disabled,
18,Disabled,"19. Out of Warranty, Expired"
,IO Stat,HW Category
0,,"19. Out of Warranty, Expired"
1,Disabled,In Use
2,Disabled,In Use
3,Disabled,Onsite
4,Disabled,
5,Disabled,
6,Disabled,
7,,"19. Out of Warranty, Expired"
8,Disabled,
9,Disabled,
10,Disabled,In Use
11,Disabled,In Use
12,Disabled,Onsite
13,Disabled,
14,Disabled,
15,Disabled,
16,,"19. Out of Warranty, Expired"
17,Disabled,
18,,"19. Out of Warranty, Expired"
预期结果:
,IO Stat,HW Category
0,Disabled,"19. Out of Warranty, Expired"
1,Disabled,In Use
2,Disabled,In Use
3,Disabled,Onsite
4,Disabled,
5,Disabled,
6,Disabled,
7,Disabled,"19. Out of Warranty, Expired"
8,Disabled,
9,Disabled,
10,Disabled,In Use
11,Disabled,In Use
12,Disabled,Onsite
13,Disabled,
14,Disabled,
15,Disabled,
16,Disabled,"19. Out of Warranty, Expired"
17,Disabled,
18,Disabled,"19. Out of Warranty, Expired"
,IO Stat,HW Category
0,,"19. Out of Warranty, Expired"
1,Disabled,In Use
2,Disabled,In Use
3,Disabled,Onsite
4,Disabled,
5,Disabled,
6,Disabled,
7,,"19. Out of Warranty, Expired"
8,Disabled,
9,Disabled,
10,Disabled,In Use
11,Disabled,In Use
12,Disabled,Onsite
13,Disabled,
14,Disabled,
15,Disabled,
16,,"19. Out of Warranty, Expired"
17,Disabled,
18,,"19. Out of Warranty, Expired"
可以将第一个参数用作过滤条件的布尔掩码,将第二个参数用作要修改的列的列标签:
df.loc[df['HW Category'] == '19. Out of Warranty, Expired', 'IO Stat'] = ''
结果:
print(df)
IO Stat HW Category
0 19. Out of Warranty, Expired
1 Disabled In Use
2 Disabled In Use
3 Disabled Onsite
4 Disabled NaN
5 Disabled NaN
6 Disabled NaN
7 19. Out of Warranty, Expired
8 Disabled NaN
9 Disabled NaN
10 Disabled In Use
11 Disabled In Use
12 Disabled Onsite
13 Disabled NaN
14 Disabled NaN
15 Disabled NaN
16 19. Out of Warranty, Expired
17 Disabled NaN
18 19. Out of Warranty, Expired