为什么会出现TypeError:字符串索引必须为整数?

时间:2019-07-17 18:53:35

标签: python string typeerror argparse

我对编码非常陌生,我正在尝试编写一段代码以在csv文件的列中搜索关键字。我不明白为什么在尝试测试我拥有的代码时会出现“ TypeError:字符串索引必须为整数”的问题。

我真的不知道该怎么做。我曾尝试更改变量名,但这似乎无济于事。

标准库

导入操作系统 将熊猫作为pd导入 导入argparse 将numpy导入为np

定义参数

parser = argparse.ArgumentParser(description="Takes a CSV file and searches a specified column a keyword")
parser.add_argument("--csv", dest="csv", action='store', required=True,help="Name of the CSV file [required]")
parser.add_argument("--kw", dest="keyword", action='store', required=True,help="Keyword being searched for")
parser.add_argument("--cl", dest="column_name", action='store', required=True, help= "Name of column that is being searched")
parser.add_argument("--ocl", dest='output_column_name', action='store', required=True, help="Name of column in ouput file")
parser.add_argument("--outdir", dest="odir" , action='store', required=True, help="Out directory path")
args=parser.parse_args()

在继续之前标准化一些路径

file= args.csv
key = args.keyword
outColName= args.output_column_name
outdir= args.odir

print(key)

def gene_database_search(key, file):
    colName = 'flag_' + key
    file[colName] = np.where(file[args.column_name].str.contains(key), 1, 0)
    return file[[outColName,colName]]

keywordList = [key]

for key in keywordList:
    print(key)
    de = gene_database_search(key,file)
    de.to_csv(outdir/'flag_'+ key + '_list.csv')

我应该获得一个csv文件作为输出,但是在第35和42行上却遇到TypeError。

1 个答案:

答案 0 :(得分:0)

args.csv是一个字符串,表示file也是,但是您正在这样做:

file[colName] = np.where(file[args.column_name].str.contains(key), 1, 0)

您要在这里做什么?