Python:如何从列中删除所有非数值?

2024-03-29 07:12:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧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

我想dropRooms中的所有非数值。Rooms中的所有值现在都被认为是str


Tags: 数据dfdrop数值bfsnastrrooms
1条回答
网友
1楼 · 发布于 2024-03-29 07:12:12

^{}errors='coerce'^{}一起使用,按^{}过滤:

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

如果在输出中需要数字,请首先指定给同一列,然后使用^{}

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

相关问题 更多 >