首页 > 解决方案 > 检查下游逻辑中是否存在索引整数时如何在IF语句中使用索引整数?

问题描述

抱歉,如果标题令人困惑。

我有一个数据框,我想检查索引中是否存在 2 个整数。如果这些数字中的任何一个存在,我只想使用这两个索引值来比较另一列col1,以查看该列值对于这两个整数值中的任何一个是否为空。

如果该列为空,则返回稍后要使用的索引的整数。

我坚持在 IF 语句之后写下一部分。

如果这些子句中的任何一个为 TRUE,我如何使用满足该逻辑标准的整数进一步?

if 19 in session_final.index or 49 in session_final.index:
       **Not sure what to do to retrieve the integer that fulfilled this criteria**

标签: pythonpython-3.xpandas

解决方案


我建议使用:

df[df.index.isin([19, 49]) & df['col1'].notna()]

如果需要返回索引的整数:

df.index[df.index.isin([19, 49]) & df['col1'].notna()]

样品

df = pd.DataFrame({
         'col1':[np.nan,3,5,7,1,0],
}, index=[19,49,4,5,6,7])
print (df)
    col1
19   NaN
49   3.0
4    5.0
5    7.0
6    1.0
7    0.0

a = df.index[df.index.isin([19, 49]) & df['col1'].notna()]
print (a)
Int64Index([49], dtype='int64')

推荐阅读