python - 带有 if 语句的 Python 单行 for 循环
问题描述
我有一个用于我的 Pandas 数据框的函数来返回每列的长度:
def get_col_widths(dataframe)
return [max([len(str(s)) for s in dataframe[col].values] + [len(col)]) for col in dataframe.columns]
但是我有一列日期(类型numpy.datetime64
),所以当你这样做时,len(str(s))
它会返回 29 而不是预期的 10(MM/DD/YYYY
)。
如何合并 if 来测试 if isinstance(s, np.datetime64)
,返回 10 而不是len(str(s))
?
解决方案
我们这里不需要 for 循环
c=col
df[c].astype(str).str.len().max()
推荐阅读
- java - com.sun.mail.smtp.SMTPSendFailedException: 550 5.2.125 发件人已超过允许发送的最大邮件数
- javascript - 无法使用 ES 6 模块导入语句使用 css-loader
- c++ - 使用 SIR 模型的疾病爆发模拟
- vuejs2 - 何时创建组件?- Vue.js
- visual-studio-code - 为什么在 vscode 的扩展内部未定义 stream.pipeline?
- python - 如何断言根据条件过滤的熊猫数据框为真
- database - DB2 中的事件监视器记录从 VPN 在创建事件的同一台服务器上运行的查询的详细信息?
- mysql - Rails 迁移:在不更改类型的情况下向列添加注释
- r - 有没有办法总结我的问卷数据以显示每个问题的每个响应的数量?
- firebase - 为什么 firebase phone auth 需要在 Xcode 中注册自定义 URL 方案?