根据其他列值更新特定列的值

2024-09-27 00:13:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试更新特定列的所有行值,其中另一列的值与特定值匹配

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

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

不是更改两行,而是只更改最后一行
如果我能找到解决方案,这将非常有帮助。
谢谢


Tags: self密码dfdatadef选项statusyes

热门问题