簡體   English   中英

編寫檢查所有 Pandas DataFrame 列值是否滿足特定值?

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

我正在為一個軟件包寫支票。 Pandas DataFrame 中的元素滿足一定的條件; 如果他們不這樣做,我將引發一個用 Python 編寫的ValueError異常。

這是一個示例熊貓數據幀:

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

我見過的檢查某些值的最有效方法是使用sets ,例如,如果列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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM