我试图在Pandas数据框中找到包含64个以上字符的列。
数据框有20列。我想检查列中的每个值的字符长度,如果任何值超过64个字符,则打印列名。
当我使用以下代码时,它不会给出任何错误,但不会输出具有与条件匹配的值的列名。
for col in df.columns:
if (df[col].str.len()).any() > 64:
print col
我还确保数据框中的所有数据类型均为String类型。
如何使用Pandas实现这一目标?
答案 0 :(得分:3)
如果您所有的列都是字符串:
df[df.Produced==0 & (df.loc[:, ['Lost', 'Output', 'Signal']]!=0).any(1)]
df.applymap(len).gt(64).any()
答案 1 :(得分:3)
如果要使用any
,则必须围绕比较,例如:
if (df[col].str.len() > 64).any()
但是您也可以将其与max
进行比较:
if (df[col].str.len()).max() > 64
两者都应给出相同的结果