2021-04-09

argparse 初学踩坑点

本文为初学python argparse 时容易遇到的踩坑点 请配合 argparse 初学教程 使用

  • default

    请看下列代码

    import argparse
    parser= argparse.ArgumentParser();
    parser.add_argument("-t","--threads",type=int,default=1,help="choose the numbers of threads for your downloading.default:1")
    args=parser.parse_args();
    

    当使用 python argparse -t 时 仍会报错

    error: argument -t/--threads: expected one argument
    

    这是为什么呢?

    让我们在最后加上

    print(args)
    

    然后运行 python xxxx.py

    可以清楚的看到输出:

    Namespace(threads=1)
    

    这时我们会发现 当使用 -t 等其他可选参数时必须加上 argument 而我们提前设置的default 是当-t 没有使用的时候默认的

    例如:

    python xxxx.py
    

    这时没有使用参数-t 所以default 生效

    换句话说 没事不要打参数 打出来参数 无论如何 都要加上 argument

  • concat 之后多个dataframe 其中index重复

    import pandas as pd
    df1=pd.DataFrame({'A':[1,2,3,4],
                       'B':[4,5,6,7]})
    df2=pd.DataFrame({'A':[a,b,c,d],
                       'B':[e,f,g,h]})
    df3=pd.concat([df1,df2])
    print(df3)
    
    

    结果如下:

           one  two
        0    1    4
        1    2    5
        2    3    6
        3    4    7
        0    a    e
        1    b    f
        2    c    g
        3    d    h
    

    可以观察左列index 重复了

    还好python 的dataframe自带函数

    使用下列代码重新设置index即可(python 永远的神!!!!)

        df3.drop(index=[0],inplace=True)
    

    或者其index 也可以通过数组设置:

    df5=pd.concat([df1,df2])
    df5.index=range(len(df5))
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容