我正在尝试找到一个不错的实现,可以从一组CSV文件中删除选定的列。我有一个CSV文件目录,我想从中收集时间序列数据,但只想要值和时间戳。我只想删除其他列,我也很好奇在将文件放在一起之后如何执行此类任务。到目前为止,我拥有的是这样的东西:
files = glob.glob("../dir/subdir/*.csv")
data = {os.path.basename(fname):pd.read_csv(fname) for fname in files}
for df in data:
df.drop(columns = ['A', 'D'])
由于某些原因,该方法不起作用,但是如何实现我的目标?
答案 0 :(得分:1)
假设您要保留列“ B”和“ C”。而且您只想按照最后一句话来清理数据,这意味着您只想完成工作,因此不需要专门使用Python,那么此命令行一类代码将为您创建一个新的.csv文件。第三列:
awk 'FNR == 1 {next} BEGIN {FS=","} {print $2","$3}' *.csv > new.csv
我假设您最终希望将一个完全串联的文件读入DataFrame,因此将其设置为从第二行开始读取每个.csv文件,因此,在制作标头之后,您将必须替换它。
抱歉,如果必须使用DataFrames完成操作,我在这里很陌生。