我有一个包含 20 个 csv 文件的文件夹。每个文件大约有 10 列和数千行。 csv 文件如下所示:
基因 | p 值 | xyz |
---|---|---|
阿坎 | 0.05 | 123 |
mmp2 | 0.02 | 456 |
mmp9 | 0.07 | 789 |
nnos | 0.09 | 123 |
gfap | 0.01 | 456 |
我编写了以下脚本,目的是遍历每个文件并仅通过我指出的感兴趣的基因(在本例中为 mmp2 和 mmp9)过滤行,然后仅保存这些行的 csv 文件。
# the goal is to edit and save the csv files so they only contain the genes of interest
path = '/Users/adriana/Library/Documents/raw_data'
all_files = glob.glob(os.path.join(path, "*.csv")) #make list of file paths
genes = ["mmp2", "mmp9"]
for file in all_files:
path = '/Users/adriana/Library/Documents/raw_data'
df = pd.read_csv(file,delimiter ='\t')
cleaned = df[df['gene'].isin(genes)]
cleaned.to_csv(file)
但是,我收到以下错误:
关键错误:“基因”
不知道为什么我会收到此错误,因为这是我每个文件中的一列。
尝试跳过它说缺少
gene
列的 dfs。并通过打印 gene
检查列名称是否与单词 df.info()
完全匹配。这样代码就不会失败,并且您可以看到哪个 dfs 导致了问题
if 'gene' in df.columns:
cleaned = df[df['gene'].isin(genes)]
...
else:
print(df.info())