假设 df
是一个 pandas DataFrame
对象。
丢弃的标准可以表示为所有值在提供给以下测试函数时产生 True
的那些列:
lambda x: (x is None) or not re.match('\S', str(x))
最佳答案
您可以使用 applymap
将您的函数应用于 DataFrame
的元素:
In [19]: df = pd.DataFrame({'a': [None] * 4, 'b': list('abc') + [' '],
'c': [None] + list('bcd'), 'd': range(7, 11),
'e': [' '] * 4})
In [20]: df
Out[20]:
a b c d e
0 None a None 7
1 None b b 8
2 None c c 9
3 None d 10
In [21]: to_drop = df.applymap(
lambda x: (x is None) or not re.match('\S', str(x))).all()
In [22]: df.drop(df.columns[to_drop], axis=1)
Out[22]:
b c d
0 a None 7
1 b b 8
2 c c 9
3 d 10
关于python - 如何按条件删除列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14838945/