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

2024-10-03 11:17:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经设法使用Python和speedtest cli包来运行一个对我的网速的speedtest。我每15分钟运行一次,并将结果附加到一个.csv文件中,我称之为“速度测试.csv". 然后每隔12小时我就会收到一个.csv文件,这是大量的数据。你知道吗

我只对保留返回速度低于13mbps的数据行感兴趣。使用下面的代码,我可以过滤这些数据并将其附加到另一个.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次,我将在speedtestfilteronly.csv文件“文件。你知道吗

我只想从中附加不同的行速度测试.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)

Tags: 文件csv数据代码importmasterpandasdf
1条回答
网友
1楼 · 发布于 2024-10-03 11:17:16

有几种不同的方法可以实现这一点,一种是读入过滤后的数据集,在内存中附加新的数据集,然后像这样删除重复数据:

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)

相关问题 更多 >