大熊猫的合并功能由于索引而出错

时间:2019-07-17 02:37:16

标签: pandas merge integer

我正在尝试通过从命令行输入列索引来合并2个文件。我使用了较旧Mac上的相同脚本和测试文件,并且以前没有出现问题。现在,在这台新计算机上,它无法正常工作并给我错误:IndexError:仅整数,切片(:),省略号(...),numpy.newaxis(None)和整数或布尔数组是有效索引

import argparse

将熊猫作为pd导入 导入csv

用于命令行参数解析的功能

def parse_args():

parser = argparse.ArgumentParser(description='Simple code to combine 2 fold change files with 4 columns each: "GeneID", "Biotype", "GeneName" , "FoldChange"  ') 
parser.add_argument('-f1','--file1', type=str, required=True, 
                                        help='First file') 
parser.add_argument('-f2','--file2', type=str, required=True, 
                                        help='Second file')
parser.add_argument('-c1','--col1', type=str, required=True, 
                                        help='Number of column for f1 for merger')
parser.add_argument('-c2','--col2', type=str, required=True, 
                                        help='Number of column for f2 for merger')
parser.add_argument('-m','--method', type=str, required=True, 
                                        help="method {left: use only keys from left frame ; right: use only keys from right frame; outer: use union of keys from both frames; inner: use intersection of keys from both frames}")
parser.add_argument('-o','--output', type=str, required=True, default="", 
                                        help='Output Dataframe without extension {MergedDf}')                               
args = parser.parse_args()
return args

def main():

args = parse_args()
df1 = pd.read_table(args.file1, sep="\t" )
df2 = pd.read_table(args.file2, sep="\t")
merged = df1.merge(df2, left_on=df1.columns[args.col1], right_on=df2.columns[args.col2], how=args.method)   
merged.to_csv(args.output+".xls", sep="\t", index=False, na_rep="NA")
merged.to_excel(args.output+".xlsx", index=False, na_rep="NA")

如果名称 ==“ 主要”:     尝试:     main()

except:
print("Unknown Error")
    raise

我的命令行是:

python Merge2Files.v1.py -f1 mapped_mm9tomm10LiftOver.xls -f2 lincs-mm9-hg19.xls -o test -c1 3 -c2 0 -m left    

两个文件分别在第4列和第1列具有共享条目。但是,我得到了错误

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

有什么想法为什么会导致错误?在使用相同的“测试”文件之前,它就像是一种魅力。

0 个答案:

没有答案