熊猫.loc和PEP8

时间:2020-10-24 19:06:43

标签: python pandas pep8

我已经尝试搜索过多次,但我没有看到它的答案,所以在这里...

我经常使用熊猫清理数据框并使其符合我的需求。随之而来的是许多.loc访问以查询它并返回值。根据我在做什么(和列的长度),这可能会很长。如果将PEP8限制为每行79个字符,是否有最佳实践?下面的一些示例(为简化起见,仅出于解释目的):

missing_address_df = address_df.loc[address_df['address'].notnull()].copy()

或多个查询点:

nc_drive_df = address.loc[(address_df['address'].str.contains('drive')) & (address_df['state'] == 'NC')]

1 个答案:

答案 0 :(得分:6)

我建议两件事

  • 忽略PEP 8的80个字符建议,但尝试保持120或150行
    保持 some 的行长要求有助于提高可读性,但是,如果您尝试将(例如)一个类方法的字符数保持在80个字符以内,则会导致代码更差且可读性更差

    PEP 8实际上有一个A Foolish Consistency is the Hobgoblin of Little Minds部分,它描述了您应偏离其其他建议的情况,例如

    1. 应用指南会降低代码的可读性,即使对于那些习惯阅读遵循此PEP的代码的人来说
  • .loc的内容分成多行

    nc_drive_df = address.loc[
        (address_df['address'].str.contains('drive')) & \
        (address_df['state'] == 'NC')
    ]
    

尽管代码是有效的语法,但很难确定何时代码“看起来很糟”,但是您会遇到的。实际上,PEP 8和Cyclomatic Complexity检查器是可以帮助您以科学的方式对抗和防御并提出代码样式的工具。