簡體   English   中英

是dataframe列的行中的值返回true還是false

[英]are values in rows of column of dataframe return true or false

輸入數據:

obj  number
1    433
2    342
3    111
4    345

輸出數據:

true

嘗試:

df[df['number'].isin([111,433])]
df.number.isin([111,433])
df.number.any() == 111 or 433

但是他們都沒有給我想要的結果

我正在嘗試解析文件,並且只要數字在1個數據幀中,我都想運行一些特殊的算法來重新格式化它。 例如,如果在數字列中有111,我想添加一個帶有layout-name的列,其中應顯示值“ layout1”

您很接近,使用Series.any測試了標量的值,以測試至少一個True

print ((df.number == 111).any())
True

要使用OR測試多個值,請使用Series.isinany

df.number.isin([111, 222]).any()

如果需要測試連續值111和下一行222

print (df)
   obj  number
0    1     433
1    2     342
2    3     111
3    4     222

print (((df['number'] == 111) & (df['number'].shift(-1) == 222)).any())
True

您將其設置得太復雜了,您可以在這里檢查是否有任何值是111

(df['number'] == 111).any()

或更短:

df['number'].eq(111).any()

如果要檢查序列中是否出現兩個(或多個值),則:

>>> import numpy as np
>>> np.any(df[:,None] == np.array([[111, 222]]), axis=0).all()
False

如果要檢查的項目數量相對較少,則可以解決問題。

暫無
暫無

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

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