Pandas 删除重复项不会删除最后一个重复项

Pandas dropping duplicates doesn't drop last duplicate

设置 keep=False 应该删除所有重复项,但如果我 运行 我的函数仍然是 return 上一行的副本

def date_to_csv():
   import pandas as pd
   from random import randint
   df = pd.read_csv("test.csv")
   df = df.append({'Date': datetime.date.today(), 'Price': randint(1,100)}, ignore_index=True)
   result_df = df.drop_duplicates(keep=False)
   result_df.to_csv('test.csv', mode='a', index=False, header=None)

如果我的 csv 文件是空的,只有列 headers 'Date' 和 'Price' 并且我 运行 我的函数是它的 3 倍 returns 这个在 csv 中:

Date,Price
2021-06-26,74
2021-06-26,74
2021-06-26,51
2021-06-26,51
2021-06-26,13

当我期望它 return 像这样:

Date,Price
2021-06-26,74
2021-06-26,51
2021-06-26,13

由于mode='a',您无法在多次执行函数后删除之前的重复项。这是您预期行为的代码:

import pandas as pd
from datetime import datetime


def date_to_csv(): 
     df = pd.read_csv('test.csv') 
     df = df.append({'Date': str(datetime.now().date()), 'Price': randint(1, 100)}, ignore_index=True) 
     df.to_csv('test.csv', index=False)