很抱歉,标题令人困惑。
我有一个数据框,我想检查索引中是否存在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**
答案 0 :(得分:2)
我建议使用:
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')
答案 1 :(得分:1)
如果我正确理解了您的问题
df[~df[df.index.isin((19, 49))]['col1'].isnull()]
将为您提供一个索引为(19,49)且col1
不为空的数据框。
然后,您可以检查数据框是否为空,然后检查值。