【bug 记录】df.to_csv()中文件名的问题

今天下午做了一下午的拆分数据集,将具有相同母核的分子放在一个csv文件中,然后新的csv文件命名是母核的名字,然后拆分出的数据集和原始未拆分的数据集的数量总是对不上,我无语了,排查错误了很久,我快吐了,最后发现是出在了下面这一行代码上:

df_match.to_csv('drawimages/data/diffscaffold/{}.csv'.format(csv_name), index=False)

乍一看可能感觉没问题,确实也是可以存入数据,但是里面有一个坑,就是 如果现在两个母核是下面这两种的时候(这两个母核只有部分的原子大小写不一致,但是他们是不一样的),那么它只会存储其中一种(大坑)!【原因:Windows会把这两个虽然大小写不一致的文件夹认为是一种,且只能存在一种!】所以会一直导致不能存储所有的数据,总是对不上数据。。。。

 O=C(NCc1ccccc1)c1c(Cc2ccccc2)sc2c1CCOC2

O=C(NCC1CCCCC1)c1c(Cc2ccccc2)sc2c1CCOC2

只需要修改代码为:

for i, core in enumerate(core_list):
    matches = []
    for j, smiles in enumerate(smiles_list):
        mol = Chem.MolFromSmiles(smiles)
        core_mol = Chem.MolFromSmiles(core)
        if mol.HasSubstructMatch(core_mol):
            matches.append(j)

    # 选取包含母核的行,并保存到一个新的csv文件中
    df_match = df.iloc[matches]
    df_match.to_csv('drawimages/data/diffscaffold/{}.csv'.format(i+1), index=False)
    print("{}.csv is done! ".format(i+1))

猜你喜欢

转载自blog.csdn.net/weixin_43135178/article/details/130508700