簡體   English   中英

為什么會出現TypeError:字符串索引必須為整數?

[英]Why am I getting TypeError: string indices must be integers?

我對編碼非常陌生,我正在嘗試編寫一段代碼以在csv文件的列中搜索關鍵字。 當我嘗試測試所擁有的代碼時,我不明白為什么會收到“ TypeError:字符串索引必須為整數”的原因。

我真的不知道該怎么辦。 我曾嘗試更改變量名,但這似乎無濟於事。

標准庫

導入os導入熊貓為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。

args.csv是一個字符串,表示file也是如此,但是您正在執行以下操作:

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

您要在這里做什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM