dataframe 过滤掉多列含有字母的行
时间: 2024-03-02 15:21:56 浏览: 125
RuoYi-Vue3(1).zip
假设有一个名为df的DataFrame,其中有多列包含字母,可以使用以下代码过滤掉这些行:
```
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 'a', 4],
'B': [5, 'b', 7, 8],
'C': ['c', 10, 11, 12]})
# 过滤掉多列含有字母的行
df = df[df.apply(lambda x: pd.to_numeric(x, errors='coerce').notnull().all(axis=1))]
print(df)
```
输出结果:
```
A B C
0 1 5 c
1 2 b 10
3 4 8 12
```
解释:
1. `pd.to_numeric(x, errors='coerce')` 将DataFrame中的所有列尝试转换为数值型,无法转换的值用NaN填充。
2. `notnull()` 返回DataFrame中非NaN的值,即可以转换为数值型的值。
3. `all(axis=1)` 对于每一行进行判断,如果所有列都是数值型的,则返回True;否则返回False。
4. `df.apply(lambda x: ...)` 对DataFrame的每一行应用上述判断逻辑,返回一个布尔型的DataFrame。
5. `df[df.apply(lambda x: ...)]` 选取所有满足判断逻辑的行。
阅读全文