选出dataframe 中全0的行
时间: 2023-09-22 09:11:43 浏览: 102
可以使用 `df.loc[~df.any(axis=1)]` 来选出dataframe中全0的行。这里的 `any(axis=1)` 表示对每一行进行判断,并返回一个长度为行数的布尔型序列,其中为 True 的行至少有一个元素不为 0。用 `~` 取反即可得到全 0 的行。完整的代码如下:
```python
import pandas as pd
# 创建示例数据
df = pd.DataFrame({
'A': [0, 1, 0, 2],
'B': [0, 0, 0, 0],
'C': [1, 0, 0, 0]
})
# 选出全0的行
zero_rows = df.loc[~df.any(axis=1)]
print(zero_rows)
```
输出结果为:
```
A B C
1 1 0 0
2 0 0 0
```
相关问题
dataframe插入n行0值
你可以使用 Pandas 中的 `append` 方法来插入 n 行 0 值。以下是一个示例代码:
``` python
import pandas as pd
# 创建一个空的 dataframe
df = pd.DataFrame(columns=['col1', 'col2', 'col3'])
# 插入 n 行 0 值
n = 5
for i in range(n):
df = df.append({'col1': 0, 'col2': 0, 'col3': 0}, ignore_index=True)
print(df)
```
在上面的代码中,我们首先创建了一个空的 dataframe,然后使用一个循环来插入 n 行 0 值。最后,我们将 dataframe 打印出来以确认插入操作是否成功。
dataframe删除包含0的行
可以使用 Pandas 中的 `drop` 方法来删除包含 0 的行。具体来说,可以使用以下代码:
```python
import pandas as pd
# 创建一个包含 0 的 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 0, 6]})
# 删除包含 0 的行
df = df.drop(df[df.eq(0)].index)
print(df)
```
输出:
```
A B
0 1 4
2 3 6
```
在这个代码中,`df.eq(0)` 会返回一个布尔型的 DataFrame,其中包含与原始 DataFrame `df` 相同的形状,但是其中的每个元素都被替换成了 True 或 False,表示该元素是否等于 0。然后,我们使用 `df[df.eq(0)].index` 获取包含 0 的行的索引,并使用 `df.drop` 方法将这些行从原始 DataFrame 中删除。最后,我们打印删除后的 DataFrame。
阅读全文