Мне удалось использовать Python с пакетом speedtest-cli для запуска speedtest из моей скорости интернета.Я запускаю это каждые 15 минут и добавляю результаты в файл .csv, который я называю "speedtest.csv".Затем я получаю этот файл .csv по электронной почте мне каждые 12 часов, что является большим количеством данных.
Меня интересует только сохранение строк данных, которые возвращают скорость загрузки менее 13 Мбит / с.Используя следующий код, я могу отфильтровать эти данные и добавить их во второй файл .csv, который я называю speedtestfilteronly.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 раза, я получаю те же 4 набора добавленных данных в файле "speedtestfilteronly.csv".
Я хочу добавлять только отличающиеся строки из speedtest.csv в speedtestfilteronly.csv.
Как мне этого добиться?
У меня есть следующий код для работы, за исключением того, что он не выполняет фильтрацию результатов до <13000000.0 Мбит / с: Есть еще идеи?</p>
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)