更新特定值取决于其他列值匹配pandas

时间:2018-04-05 23:56:57

标签: python python-3.x pandas

我一直在尝试更新特定列的所有行值,其中另一列的值与特定值匹配。我已关注此链接:Modifying a subset of rows in a pandas dataframe

使用它只会更改最后一行的值,但所有其他行值保持不变。 这是我的代码:

def update_status(self, isbn=0, status='yes'):
    print("\nUpdating Status\n")
    df = self.data
    ndf = df[df['ISBN']==isbn]
    if len(ndf) > 0:
        print(df)
        df.loc[df.ISBN==(isbn), 'STATUS'] = status
        print(df)
        print("\nUpdated\n")
        self.data=df[['ID', 'AUTHOR', 'ISBN', 'TITLE', 'YEAR', 'STATUS']].copy()
        os.remove(self.filname)
        self.data.to_csv(self.filname, sep=',', encoding='utf-8')
    else:
        print("No Book Found\n")

这是ISBN = 9332549532和status ='yes'的输出 output

而不是更改2行,只有最后一行被更改为
如果我得到解决方案,那将非常有用 感谢

0 个答案:

没有答案