azure 搜索列中的特定值及其其余列中的相应数据

ijxebb2r  于 2023-05-18  发布在  其他
关注(0)|答案(2)|浏览(128)

我有下面的场景,其中我必须检查一列中的值以及其他列中的相应值。如果任何一个值不为null,则需要返回true。

假设我必须检查column1中的值D、E和F,并检查column2和column3中的相应值。此处column2包含NaN,但column3包含数据,然后返回true

bbuxkriu

bbuxkriu1#

如果我理解正确的话,假设您有以下数据框:

import numpy as np
import pandas as pd
df=pd.DataFrame({"Column1":['A','B','C','D'],'Column2':[1,2,3,np.nan],'Column3':['x','y',np.nan,np.nan]})
print(df)

  Column1  Column2 Column3
0       A      1.0       x
1       B      2.0       y
2       C      3.0     NaN
3       D      NaN     NaN

然后,您应该首先将您要检查的列(在我们的示例中为Column1)设置为索引,并执行以下操作:

df.set_index('Column1').notna().any(axis=1)

Column1
A     True
B     True
C     True
D    False
btqmn9zl

btqmn9zl2#

假设您想测试目标的all行是否至少有一个非NaN值(any),请用途:

target = ['D', 'E', 'F']

out = (df.loc[df['Column1'].isin(target), ['Column2', 'Column3']]
         .notna().any(axis=1)
         .all()
      )

输出:True(但如果value1NaN,则为False
如果要检查是否有至少一个非NaN单元,请在两种情况下使用any

target = ['D', 'E', 'F']

out = (df.loc[df['Column1'].isin(target), ['Column2', 'Column3']]
         .notna().any(axis=1)
         .any()
      )

输出:True(如果value1NaN,则仍然是True

相关问题