簡體   English   中英

僅將不同的數據從一個.csv附加到另一個.csv

[英]Append only unlike data from one .csv to another .csv

我已經設法將Python與speedtest-cli軟件包結合使用來對我的Internet速度進行速度測試。 我每15分鍾運行一次,並將結果附加到一個名為“ speedtest.csv”的.csv文件中。 然后,我每隔12小時將這個.csv文件通過電子郵件發送給我,其中包含大量數據。

我只對保持返回小於13mbps下載速度的數據行感興趣。 使用以下代碼,我可以過濾此數據並將其附加到另一個名為speedtestfilteronly.csv .csv文件中。

import pandas as pd
df = pd.read_csv('c:\speedtest.csv', header=0)
df = df[df['Download'].map(lambda x: x < 13000000.0,)]
df.to_csv('c:\speedtestfilteronly.csv', mode='a', header=False)

現在的問題是,每次我運行此代碼時,它都會附加與我的過濾條件匹配的所有行。 因此,如果我運行此代碼4次,則在“ speedtestfilteronly.csv”文件中會收到相同的4組附加數據。

我只想追加從speedtest.csv到speedtestfilteronly.csv的行。

我該如何實現?

我有以下代碼可以工作,除了它唯一沒有做的就是將結果過濾到<13000000.0 mb / s:還有其他想法嗎?

import pandas as pd

df = pd.read_csv('c:\speedtest.csv', header=0)  
df = df[df['Download'].map(lambda x: x < 13000000.0,)]

history_df = pd.read_csv('c:\speedtest.csv')
master_df = pd.concat([history_df, df], axis=0)
new_master_df = master_df.drop_duplicates(keep="first")
new_master_df.to_csv('c:\emailspeedtest.csv', header=None, index=False)

您可以采用幾種不同的方法,一種方法是讀取過濾后的數據集,將新的數據集追加到內存中,然后像這樣刪除重復項:

import pandas as pd

df = pd.read_csv('c:\speedtest.csv', header=0)
df = df[df['Download'].map(lambda x: x < 13000000.0,)]

history_df = pd.read_csv('c:\speedtestfilteronly.csv', header=None)
master_df = pd.concat([history_df, df], axis=0)
new_master_df = master_df.drop_duplicates(keep="first")
new_master_df.to_csv('c:\speedtestfilteronly.csv', header=None, index=False)

暫無
暫無

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

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