我正在寻找一种方法来遍历目录中的30多个文件,并根据其他文件中的ID从其中删除行。这些文件包含两列-ID和一个值,没有列名。另一个文件仅包含具有应删除的ID(“ id”)的列(“ ids_toberemoved”)。清理完30个文件后,我想将它们导出到其他文件夹。
这是我到目前为止所拥有的:
button.addEventListener('click', function() { test1(); })
button.addEventListener('click', function() { test2(); })
我在迭代数据帧并将其与“ ids_toberemoved”结合在一起的步骤中丢失了一些东西,以便删除具有匹配ID的行。另外,我不知道清理后如何将每个文件存储到其他文件夹。
任何帮助表示赞赏!
答案 0 :(得分:0)
尝试以下方法:
from pathlib import Path
myPath = Path("F:\\Other")
ids_toberemoved = pd.read_csv('F:\\ids.csv', squeeze=True)
res = pd.concatenate([pd.read_csv(f, header=None, names=["ID","val"])
.query("ID not in @ids_toberemoved")
for f in myPath.glob("*.csv")],
ignore_index=True)
更新:以清除文件并单独将其导出为"filename_clean.csv"
:
_ = [pd.read_csv(f, header=None, names=["ID","val"])
.query("ID not in @ids_toberemoved")
.to_csv(f.with_name(f"{f.stem}_clean{f.suffix}"), index=False)
for f in myPath.glob("*.csv")]