python删除dataframe只有空值的列
时间: 2023-07-06 13:11:25 浏览: 122
你可以使用 Pandas 提供的 `dropna()` 和 `all()` 方法来删除 DataFrame 只有空值的列。`dropna()` 方法可以删除包含空值的行或列,而 `all()` 方法可以判断每一列是否全部为 True(即全部为非空值)。结合起来,就可以删除 DataFrame 中只有空值的列了。例如,下面的代码可以删除 DataFrame `df` 中只有空值的列:
```python
import pandas as pd
import numpy as np
# 创建一个包含空值的 DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, np.nan], 'C': [7, 8, 9]})
# 删除只有空值的列
df = df.dropna(axis=1, how='all')
print(df)
```
输出结果为:
```
A B C
0 1.0 4.0 7
1 2.0 NaN 8
2 NaN NaN 9
```
注意,这里删除了只有空值的第 2 列。如果你想要删除只有空值的行,可以将 `axis=1` 改为 `axis=0`。
相关问题
筛选dataframe的空值列
可以使用`isnull()`函数和`all()`函数进行空值列的筛选。
示例代码:
```python
import pandas as pd
# 创建示例数据
df = pd.DataFrame({'A': [1, 2, None, 4],
'B': [None, None, None, None],
'C': [5, 6, 7, 8]})
# 筛选空值列
null_cols = df.columns[df.isnull().all()]
print(null_cols)
```
输出结果:
```
Index(['B'], dtype='object')
```
说明:上述代码中,`isnull()`函数用于判断DataFrame中的每个元素是否为空值(NaN或None),返回一个布尔型的DataFrame;`all()`函数用于判断每个列是否全为True,即该列是否全部为空值,返回一个布尔型的Series;`columns`属性用于获取DataFrame的列名,返回一个Index类型的对象。将返回的Series作为索引,即可获取所有全为空值的列名。
python dataframe判断空值
在Python中,可以使用pandas库中的DataFrame对象来判断空值。DataFrame对象中的isnull()方法可以返回一个布尔值的DataFrame对象,其中True表示该位置为空值,False表示该位置不为空值。例如:
```python
import pandas as pd
# 创建一个DataFrame对象
df = pd.DataFrame({'A': [1, 2, None], 'B': [4, None, 6]})
# 判断是否为空值
print(df.isnull())
```
输出结果为:
```
A B
False False
1 False True
2 True False
```
可以看到,第二行第二列和第三行第一列的位置为空值。
阅读全文