首页 > 解决方案 > 带有 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))

标签: pythonpandasnumpyfor-loopif-statement

解决方案


我们这里不需要 for 循环

c=col

df[c].astype(str).str.len().max()

推荐阅读