gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:19 25 4
gpt4 key购买 nike

我正在为软件包编写检查。 pandas DataFrame 中的元素满足某些条件;如果他们不这样做,我将引发一个用 Python 编写的 ValueError 异常。

这是一个 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

我见过检查某些值的最有效方法是使用集合,例如如果列 type 包含不是 ABC 的元素,则抛出错误:

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

问题:

如何最有效地检查条件?例如我想检查 amount 列是否包含大于 0 的整数。如果此列中存在任何零、负整数或非整数,则引发 ValueError()

最佳答案

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

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

关于python - 编写检查所有 pandas DataFrame 列值是否满足特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com