簡體   English   中英

如何檢查 csv 文件中是否已經存在這樣的行

[英]How to check if there is already such a line in a csv file

我有一個記錄該信號本身值的信號的 csv 日志文件。

值在其中重復。 我想避免的。

我正在嘗試這樣的事情

#There's a function torn out of the class right away
def Signal(self):
        df = pd.read_csv('Datasets\\RobotMath\\Answer-Step-Score.csv', usecols=['Time','Answers','step','step2','Score' ])
        df = df.tail(1)
        if df.step.item() != 0:
            self.value = df.step.item()
        elif df.Answers.item() != 0:
            self.value = df.Answers.item()
        elif df.step2.item() != 0:
            self.value = df.step2.item()
        self.b = pd.DataFrame({(self.value, df.Time.item(), df.Score.item())})
        dfa = pd.read_csv('Datasets\\RobotMath\\Signal-log.csv', usecols=['Time'])
        self.dfa = dfa.tail(1)
        if df.Время.item() != dfa.Time.tolist():
            self.b.to_csv('Datasets\\RobotMath\\Signal.csv',index=False, header=['Sig', 'Time', 'Step'])
            self.b.to_csv('Datasets\\RobotMath\\Signal-log.csv',index=False,mode='a', header=False)
        else:
            print('The signal has not changed')

日志文件在循環啟動時在另一個 function 中創建一次並記錄一秒。

進一步,按照我的邏輯,我給一個變量賦值一個信號值,並將這個信號與一個日志文件進行比較,如果日志文件中沒有這個信號,則將其寫入日志並發送給信號。

但由於某種原因,我在日志中有重復的信號

我嘗試以不同的方式進行“if”檢查

if df.Time.item().equals(dfa.Time.item()):
            self.b.to_csv('Datasets\\RobotMath\\Signal.csv',index=False, header=['Sig', 'Time', 'Step'])
            self.b.to_csv('Datasets\\RobotMath\\Signal-log.csv',index=False,mode='a', header=False)
        else:
            print('The signal has not changed')

但它沒有那樣工作

當我這樣做時它沒有用

if df.Время.item() in dfa['Time']:
            self.b.to_csv('Datasets\\RobotMath\\Signal.csv',index=False, header=False)
            self.b.to_csv('Datasets\\RobotMath\\Signal-log.csv',index=False,mode='a', header=False)
        else:
            print('The signal has not changed')

如何進行此檢查而不寫入相同的值?

使用df.drop_duplicates會解決這個問題嗎?

self.b = pd.DataFrame({
    (self.value, df.Time.item(), df.Score.item())
}).drop_duplicates(subset='Signal')

您能否為此提供示例數據,以便可以復制該問題?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM