我有一个pandas数据帧如下:
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
Run Code Online (Sandbox Code Playgroud)
我正在使用熊猫0.20.删除"任何"列值大于10的任何行的最有效方法是什么?
len('test string1')12
所以对于上面的例子,我期望输出如下:
df
A B
0 1 2
1 NaN 1
Run Code Online (Sandbox Code Playgroud)
如果基于列 A
In [865]: df[~(df.A.str.len() > 10)]
Out[865]:
A B
0 1 2
1 NaN 1
Run Code Online (Sandbox Code Playgroud)
如果基于所有列
In [866]: df[~df.applymap(lambda x: len(str(x)) > 10).any(axis=1)]
Out[866]:
A B
0 1 2
1 NaN 1
Run Code Online (Sandbox Code Playgroud)
小智 9
我必须将迭戈的答案转换为字符串才能起作用:
df = df[df['A'].apply(lambda x: len(str(x)) <= 10)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7038 次 |
| 最近记录: |