我有一个DataFrame,里面columns列有NaN值,我要把有NaN值的行都删掉,用python怎么写
时间: 2024-02-16 08:04:47 浏览: 28
可以使用pandas库的dropna()方法来删除包含NaN值的行。下面是一个示例代码:
```python
import pandas as pd
# 创建一个包含NaN值的DataFrame
df = pd.DataFrame({'A': [1, 2, 3, None], 'B': [4, None, 6, 7]})
# 删除包含NaN值的行
df.dropna(inplace=True)
# 输出删除NaN值后的DataFrame
print(df)
```
在上面的代码中,我们创建了一个包含NaN值的DataFrame,然后使用了dropna()方法来删除包含NaN值的行,并将结果保存在原DataFrame中。最后输出删除NaN值后的DataFrame。
注意:如果不想修改原DataFrame,可以使用`df.dropna()`来返回一个新的DataFrame,而不是在原地修改。
相关问题
dataframe删除每一列出现nan以下的所有行代码怎么写
可以使用 `dropna` 方法删除每一列出现 NaN 以下的所有行,下面是示例代码:
```python
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [2, 3, 4, 5, 6],
'C': [np.nan, 1, 2, np.nan, 4],
'D': [np.nan, np.nan, np.nan, np.nan, np.nan]})
# 删除每一列出现 NaN 以下的所有行
df.dropna(thresh=len(df.columns)-1, inplace=True)
# 打印删除后的DataFrame
print(df)
```
在上述代码中,`df.dropna(thresh=len(df.columns)-1, inplace=True)` 中的 `thresh` 参数指定了每一列出现 NaN 以下的行数,这里设置为 `len(df.columns)-1` 表示每一列至少要有一个非 NaN 值。`inplace=True` 表示原地修改 DataFrame,这样就不需要重新赋值给一个新的变量。
python中dataframe删除nan行
可以使用dropna()方法删除包含NaN值的行:
```python
import pandas as pd
# 创建包含NaN值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, np.nan]})
# 删除包含NaN值的行
df = df.dropna()
print(df)
```
输出结果:
```
A B C
0 1.0 5.0 9.0
```
也可以通过指定axis=0参数来删除行中包含NaN值的列:
```python
import pandas as pd
# 创建包含NaN值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, np.nan]})
# 删除包含NaN值的列
df = df.dropna(axis=1)
print(df)
```
输出结果:
```
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3]
```