如何计算条件为假 Pandas 的行数?
How to count rows where condition is false Pandas?
我有一个 NUM
列,我尝试过滤列 NUM
有效(真)且:
的行
- 更新当前数据框
- 向字典中插入错误行的计数
report
我试试这个:
report["NUM"] = dataset['NUM'].apply(~isValid).count()
所以,它对我不起作用。
数据框是:
NUM AGE COUNTRY
1 18 USA
2 19 USA
3 30 AU
isValid
是函数
def isValid(value):
return True
备注:
我使用这个规则:
report["NUM"] = (~dataset['NUM'].apply(checkNumber)).sum()
我收到这个错误:
report["NUM"] = (~dataset['NUM'].apply(luhn)).sum()
C:\Users\Oleh\AppData\Local\Temp\ipykernel_1728478582562.py:2: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
如果要统计isValid
输出False的行数:
(~dataset['NUM'].apply(isValid)).sum()
输出:0
编辑
m = dataset['NUM'].apply(isValid)
report["NUM"] = (~m).sum()
dataset2 = dataset[m]
def isValid(value):
return True
my_df = pd.DataFrame({'NUM':[1,2,3], 'AGE':[18,19,20], 'COUNTRY':['USA','USA','AU']})
report = {'wrong_rows':(~my_df.NUM.apply(isValid)).sum()}
你需要
dataset[dataset['NUM'].map(isValid) == False].count()
因为
dataset['NUM'].apply(~isValid)
完全错了。
isValid 是一个函数,~isValid 就像不是 isValid,我猜它的计算结果为 False?我不确定。
还有
dataset[col].apply(func)
将 return 整个数据集的每一行的值都由函数 return 编辑。如果你想过滤掉错误的,你需要
df[df[col]==True]
语法。如果你有一个新专栏说
df["valid"] = dataset[col].map(func)
然后你可以做
df.query("valid is False")
或类似的东西
我有一个 NUM
列,我尝试过滤列 NUM
有效(真)且:
- 更新当前数据框
- 向字典中插入错误行的计数
report
我试试这个:
report["NUM"] = dataset['NUM'].apply(~isValid).count()
所以,它对我不起作用。 数据框是:
NUM AGE COUNTRY
1 18 USA
2 19 USA
3 30 AU
isValid
是函数
def isValid(value):
return True
备注:
我使用这个规则:
report["NUM"] = (~dataset['NUM'].apply(checkNumber)).sum()
我收到这个错误:
report["NUM"] = (~dataset['NUM'].apply(luhn)).sum()
C:\Users\Oleh\AppData\Local\Temp\ipykernel_1728478582562.py:2: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
如果要统计isValid
输出False的行数:
(~dataset['NUM'].apply(isValid)).sum()
输出:0
编辑
m = dataset['NUM'].apply(isValid)
report["NUM"] = (~m).sum()
dataset2 = dataset[m]
def isValid(value):
return True
my_df = pd.DataFrame({'NUM':[1,2,3], 'AGE':[18,19,20], 'COUNTRY':['USA','USA','AU']})
report = {'wrong_rows':(~my_df.NUM.apply(isValid)).sum()}
你需要
dataset[dataset['NUM'].map(isValid) == False].count()
因为
dataset['NUM'].apply(~isValid)
完全错了。
isValid 是一个函数,~isValid 就像不是 isValid,我猜它的计算结果为 False?我不确定。
还有
dataset[col].apply(func)
将 return 整个数据集的每一行的值都由函数 return 编辑。如果你想过滤掉错误的,你需要
df[df[col]==True]
语法。如果你有一个新专栏说
df["valid"] = dataset[col].map(func)
然后你可以做
df.query("valid is False")
或类似的东西