Is it possible to split a sequence of pandas commands across multiple lines?

后端 未结 3 691
耶瑟儿~
耶瑟儿~ 2021-02-04 01:36

I have a long string of pandas chained commands, for example:

df.groupby[[\'x\',\'y\']].apply(lambda x: (np.max(x[\'z\'])-np.min(x[\'z\']))).sort_values(ascendin         


        
3条回答
  •  逝去的感伤
    2021-02-04 01:58

    Since this has the nature of a command, I would probably format it close to your example, like this:

    df.groupby[['x','y']] \
        .apply(lambda x: np.max(x['z'])-np.min(x['z'])) \
        .sort_values(ascending=False)
    

    It took me a long time to realize I could break these expressions before the dots, which is often more readable than breaking inside the parentheses (same goes for "some long string".format()).

    If this were more like an expression evaluation, I'd wrap the whole thing in parentheses, which is considered more "Pythonic" than line continuation markers:

    var = (
        df.groupby[['x','y']]
            .apply(
                lambda x: np.max(x['z'])-np.min(x['z'])
            ) 
            .sort_values(ascending=False)
    )
    

提交回复
热议问题