我一直在尝试更新特定列的所有行值,其中另一列的值与特定值匹配。我已关注此链接: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行,只有最后一行被更改为
如果我得到解决方案,那将非常有用
感谢