微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

熊猫.loc和PEP8

如何解决熊猫.loc和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')]

解决方法

我建议两件事

  • 忽略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检查器是可以帮助您以科学的方式对抗和防御并提出代码样式的工具。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。