仅将不同数据从一个.csv追加到另一个.csv



我已经设法将Python与speedtest-cli包一起使用来运行我的互联网速度的速度测试。我每 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)

相关内容

最新更新