我有个问题。我想删除列['a','b']
中所有不是数字的行。我已经尝试过了,但我的方法效果不太好。
Dataframe
a b c
0 0.1 10 x
1 0.5 5 y
2 10 / 5 60 z
3 9.0 12 w
4 125 a w
密码
import uuid
import pandas as pd
df = pd.DataFrame(
{'a': [0.1,0.5,'10 / 5', 9.0, 125],
'b': [10, 5, 60, 12, 'a'],
'c': ['x', 'y', 'z', 'w', 'w']
})
print(df)
df['id'] = df.apply(lambda x: uuid.uuid4().int, axis=1)
df_ = df[['a', 'b', 'id']].apply(lambda x: pd.to_numeric(x, errors='coerce')).dropna()
df.merge(df_, left_on=['id'], right_on=['id'], how='inner')
我想要什么
a b c
0 0.1 10 x
1 0.5 5 y
3 9.0 12 w
2条答案
按热度按时间d8tt03nd1#
你可以这么做
mwg9r5ms2#
那怎么样
我确信有一个更好的版本可以做到这一点,但isnumeric()并不能像预期的那样工作(我的)