根据列值的长度过滤数据框架行[英] filter dataframe rows based on length of column values

本文是小编为大家收集整理的关于根据列值的长度过滤数据框架行的处理方法,想解了根据列值的长度过滤数据框架行的问题怎么解决?根据列值的长度过滤数据框架行问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个熊猫数据框如下:

df = pd.DataFrame([ [1,2], [np.NaN,1], ['test string1', 5]], columns=['A','B'] )

df
              A  B
0             1  2
1           NaN  1
2  test string1  5

我正在使用熊猫 0.20.删除"任何"列值长度> 10的任何行的最有效方法是什么?

len('测试字符串1')12

所以对于上面的例子,我期望输出如下:

df
              A  B
0             1  2
1           NaN  1

推荐答案

如果基于列A

In [865]: df[~(df.A.str.len() > 10)]
Out[865]:
     A  B
0    1  2
1  NaN  1

如果基于所有列

In [866]: df[~df.applymap(lambda x: len(str(x)) > 10).any(axis=1)]
Out[866]:
     A  B
0    1  2
1  NaN  1

本文地址:https://www.itbaoku.cn/post/1727945.html