根据在熊猫中不起作用的条件更改行值

时间:2018-08-31 05:34:02

标签: python python-3.x pandas dataframe

我有一个数据框:

 TYPE              NAME          IS_MAIN
 PPRTYPE           TIME            0
 PPRTYPE           SIGHT           0
 PPRTYPE           SIGHT           1
 PNRDTL            NOT FOUND       1
 PPRTYPE           SIGHT           0 
 PPRTYPE           TIME            1

如果TYPEPPRTYPE并且NAMESIGHT并且IS_MAIN1 那么如果NAMETYPE,则PNRDTL 'NOT APPLICABLE'中的IS_MAIN会更改为1

注意:对于任何类型,IS_MAIN = 1只会出现一次。

代码:

temp = df.loc[(df['IS_MAIN'] == 1) & (df['TYPE'] == 'PPRTYPE'), 'NAME']
temp = temp.reset_index(drop=True)
temp = temp[0]
if (temp == 'SIGHT'):
     df.loc[(df['TYPE'] == 'PNRDTL') & (df['IS_MAIN'] == 1) , 'NAME'] = 'NOT APPLICABLE'

我面临的问题是

(df['TYPE'] == 'PNRDTL') & (df['IS_MAIN'] == 1)

没有获取任何值,因此该值没有更改。

如果有人可以发现我犯的错误或告诉我任何解决方法,我会很高兴。

非常感谢。

1 个答案:

答案 0 :(得分:1)

为我工作:

CI-480-1617
CI-481-1617
CI-482-1617
CI-483-1617
CI-484-1617
CI-485-1617
CI-486-1617
CI-487-1617
CW-095-1617