简体   繁体   English

编写检查所有 Pandas DataFrame 列值是否满足特定值?

[英]Writing check that all pandas DataFrame column values meet a certain values?

I'm writing checks for a software package.我正在为一个软件包写支票。 The elements within a pandas DataFrame meet certain conditions; Pandas DataFrame 中的元素满足一定的条件; if they don't, I will raise a ValueError exception written within Python.如果他们不这样做,我将引发一个用 Python 编写的ValueError异常。

Here is an example pandas DataFrame:这是一个示例熊猫数据帧:

import pandas as pd
import numpy as np

dict1 = {'file': ['filename2', 'filename2', 'filename3', 'filename4', 
         'filename4', 'filename3'], 'amount': [3, 4, 5, 1, 2, 1], 
         'front': [21889611, 36357723, 196312, 11, 42, 1992], 
         'back':[21973805, 36403870, 277500, 19, 120, 3210], 
         'type':['A', 'A', 'A', 'B', 'B', 'C']}

df1 = pd.DataFrame(dict1)
print(df1)

        file  amount     front      back type
0  filename2       3  21889611  21973805    A
1  filename2       4  36357723  36403870    A
2  filename3       5    196312    277500    A
3  filename4       1        11        19    B
4  filename4       2        42       120    B
5  filename3       1      1992      3210    C

The most efficient way I've seen to check that certain values is to use sets , eg if column type contains elements that are not A , B , or C , throw an error:我见过的检查某些值的最有效方法是使用sets ,例如,如果列type包含不是ABC元素,则抛出错误:

if not set(['A', 'B', 'C']).issubset(df1['type']):
    raise ValueError('Pandas DataFrame contains improper values in "type" column')

Question:题:

How would I most efficiently check conditionals?我如何最有效地检查条件? eg I would like to check that column amount contains integers greater than 0. If there are any zeros, negative integers, or non-integers in this column, raise a ValueError() .例如,我想检查列amount包含大于 0 的整数。如果此列中有任何零、负整数或非整数,则引发ValueError()

您可以只过滤一列,获取返回的数据帧的长度并在您的 if 语句中使用它:

len(df1[df1['amount'] > 0])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Pandas DataFrame:根据现有列的值检查将值写入列 - Pandas DataFrame: Writing values to column depending on a value check of existing column Select Pandas 中的列名 dataframe 仅当行值满足 Python 中的特定条件时 - Select column names in Pandas dataframe only if row values meet a certain criteria in Python 如果所有值都是某个字符串,则删除 pandas dataframe 中的列 - Removing a column in a pandas dataframe if all the values are a certain string 如何检查 pandas dataframe 列中的所有值是否相等? - How do I check if all values in a column of a pandas dataframe are equal? 如果所有元素都在一组值中,则检查 pandas dataframe 中的列 - Check for a column in pandas dataframe for all elements if they are in a set of values 将值的平均值写入 Pandas 数据框中的新列 - Writing the mean of values to a new column in Pandas dataframe 在不是特定类型的Pandas DataFrame中查找所有值 - Finding All Values in Pandas DataFrame Not of Certain Type 如何在Pandas DataFrame中检查列值的类型 - How to check a type of column values in pandas DataFrame 如何编辑 pandas dataframe 中列的所有值? - How to edit all values of a column in a pandas dataframe? 如何根据 Pandas 中的另一个 DataFrame 更改 DataFrame 特定列中的值 - How to change values in certain column of DataFrame based on another DataFrame in Pandas
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM