【发布时间】:2018-10-07 07:42:50
【问题描述】:
我已经设法使用 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。
我怎样才能做到这一点?
我有以下代码可以工作,除了它唯一没有做的是将结果过滤到
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)
【问题讨论】:
-
你如何定义“不一样”?您希望它选择的标准是什么?
-
我不希望将匹配