只删除包含0.0的项,包含剩余值
时间: 2024-02-23 13:02:45 浏览: 17
可以使用 Pandas DataFrame 的 `replace()` 方法将值为 0.0 的项替换为 `NaN`,然后使用 `dropna()` 方法删除包含 `NaN` 的行或列,最后使用 `fillna()` 方法将 `NaN` 替换回原来的值。下面是一个示例代码,实现了删除 DataFrame 中值为 0.0 的项,保留包含剩余值的行或列:
```python
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'col1': [1, 2, 0, 4], 'col2': [0.0, 2.0, 3.0, 0.0]})
# 将值为 0.0 的项替换为 NaN
df = df.replace(0.0, float('nan'))
# 删除包含 NaN 的行或列
df_drop = df.dropna(axis=1, how='all')
# 将 NaN 替换回原来的值
df_final = df_drop.fillna(0)
print(df_final)
# 输出:
# col1 col2
# 0 1 0.0
# 1 2 2.0
# 2 0 3.0
# 3 4 0.0
```
在上面的示例代码中,首先创建了一个 DataFrame,然后使用 `replace()` 方法将值为 0.0 的项替换为 `NaN`。接着使用 `dropna()` 方法删除包含 `NaN` 的列,`axis=1` 表示删除列,`how='all'` 表示只有全部为 `NaN` 的列才会被删除。然后使用 `fillna()` 方法将 `NaN` 替换回原来的值,这里将 `NaN` 替换为 0。
需要注意的是,在使用 `replace()` 方法将值替换为 `NaN` 之后,需要使用 `dropna()` 方法删除包含 `NaN` 的行或列,否则这些值会继续存在于 DataFrame 中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)