我有一个数据框 df
如下所示
Rooms BFS
0 3.5 4201
1 1.5 4201
2 NA 4201
3 NA 4201
4 5.5 4201
5 5 4201
6 4.5 4201
7 3 4201
8 4201
9 3 4201
我想删除
Rooms
列中的所有非数值。 Rooms
中的所有值现在都被视为 str
使用to_numeric
使用 errors='coerce'
和 Series.notna
按 boolean indexing
过滤:
df = df[pd.to_numeric(df['Rooms'],errors='coerce').notna()]
print (df)
Rooms BFS
0 3.5 4201
1 1.5 4201
4 5.5 4201
5 5 4201
6 4.5 4201
7 3 4201
9 3 4201
如果输出中需要数字,首先分配给同一列,然后使用 DataFrame.dropna
:
df['Rooms'] = pd.to_numeric(df['Rooms'],errors='coerce')
df = df.dropna(subset=['Rooms'])
print (df)
Rooms BFS
0 3.5 4201
1 1.5 4201
4 5.5 4201
5 5.0 4201
6 4.5 4201
7 3.0 4201
9 3.0 4201
我是一名优秀的程序员,十分优秀!