Python 选择所有列均等于值的所有行
我有一个数据框,我需要选择所有列都等于0.00的行。Python 选择所有列均等于值的所有行,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,我需要选择所有列都等于0.00的行。 我该怎么做呢?首先,我们将设置一些要处理的示例数据-这里有3列,但在您的示例中可能更多,也可能更少 import pandas as pd data = [ {"A": 1, "B": 1, "C" : 1}, {"A": 0, "B": 1, "C" : 1}, {"A": 1
我该怎么做呢?首先,我们将设置一些要处理的示例数据-这里有3列,但在您的示例中可能更多,也可能更少
import pandas as pd
data = [
{"A": 1, "B": 1, "C" : 1},
{"A": 0, "B": 1, "C" : 1},
{"A": 1, "B": 0, "C" : 1},
{"A": 0, "B": 0, "C" : 1},
{"A": 1, "B": 1, "C" : 0},
{"A": 0, "B": 1, "C" : 0},
{"A": 1, "B": 0, "C" : 0},
{"A": 0, "B": 0, "C" : 0}
]
df = pd.DataFrame(data)
并定义一个函数,该函数接受数据帧中的一行,并对其执行一些测试——在本例中,检查该行中的所有值是否都等于零
def all_zero(row):
if all([v==0 for v in row.values]):
return True
else:
return False
定义测试函数后,沿轴1将其应用于数据帧(逐行):
它返回一个布尔序列,显示每行的测试是通过还是失败
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 True
dtype: bool
您可以使用此布尔序列作为索引级别选择器(或某些人称之为掩码),仅检索返回True
的行
df[df.apply(all_zero, axis=1)]
指数
A.
B
C
7.
0
0
0
首先,我们将设置一些要处理的示例数据-这里有3列,但在您的示例中可能更多,也可能更少
import pandas as pd
data = [
{"A": 1, "B": 1, "C" : 1},
{"A": 0, "B": 1, "C" : 1},
{"A": 1, "B": 0, "C" : 1},
{"A": 0, "B": 0, "C" : 1},
{"A": 1, "B": 1, "C" : 0},
{"A": 0, "B": 1, "C" : 0},
{"A": 1, "B": 0, "C" : 0},
{"A": 0, "B": 0, "C" : 0}
]
df = pd.DataFrame(data)
并定义一个函数,该函数接受数据帧中的一行,并对其执行一些测试——在本例中,检查该行中的所有值是否都等于零
def all_zero(row):
if all([v==0 for v in row.values]):
return True
else:
return False
定义测试函数后,沿轴1将其应用于数据帧(逐行):
它返回一个布尔序列,显示每行的测试是通过还是失败
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 True
dtype: bool
您可以使用此布尔序列作为索引级别选择器(或某些人称之为掩码),仅检索返回True
的行
df[df.apply(all_zero, axis=1)]
指数
A.
B
C
7.
0
0
0
这回答了你的问题吗?或多或少,我需要所有列都有这个值,而不仅仅是一个特定的列。您可以尝试
df.loc[(df==0)。all(axis=1)]
。这是否回答了您的问题?或多或少,我需要所有列都有这个值,而不仅仅是一个特定的列。您可以尝试df.loc[(df==0).all(axis=1)]
。