dataframe删除每一列出现nan以下的所有行代码怎么写
时间: 2023-06-16 19:03:10 浏览: 148
可以使用 `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,这样就不需要重新赋值给一个新的变量。
相关问题
删除一个dataframe里某列值为nan的所有行
可以使用 Pandas 的 dropna() 方法来删除包含 NaN 值的行。可以指定要删除的列,然后将参数 'subset' 设置为该列名。以下是一个示例代码:
```python
import pandas as pd
# 创建一个包含 NaN 值的 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [2, 4, 6, 8, 10],
'C': [3, 6, None, 12, None]})
# 删除 C 列值为 NaN 的行
df = df.dropna(subset=['C'])
print(df)
```
输出:
```
A B C
0 1 2 3.0
1 2 4 6.0
3 4 8 12.0
```
在上面的示例中,我们删除了 C 列值为 NaN 的行,结果只保留了包含有效值的行。
我有一个DataFrame,里面columns列有NaN值,我要把有NaN值的行都删掉,用python怎么写
可以使用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,而不是在原地修改。
阅读全文