是否可以使用有条件的,如果将DataFrame
的值提取为iloc
呢?
像这样:
if dta.iloc[[1],[5]] == "Example":
print("Ok")
答案 0 :(得分:0)
我认为您很亲密,需要删除标量的嵌套[]
:
dta.iloc[1,5]
示例:
dta = pd.DataFrame({'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')})
print (dta)
A B C D E F
0 a 4 7 1 5 a
1 b 5 8 3 3 a
2 c 4 9 5 6 a
3 d 5 4 7 9 b
4 e 5 2 1 2 b
5 f 4 3 0 4 b
print (dta.iloc[1,5])
a
if dta.iloc[1,5]=="a":
print("Ok")
Ok
但是如果iloc
返回Series
,则添加Series.any
以检查是否存在至少一个True
:
print (dta.iloc[1:4,5])
1 a
2 a
3 b
Name: F, dtype: object
print (dta.iloc[1:4,5] == 'a')
1 True
2 True
3 False
Name: F, dtype: bool
print ((dta.iloc[1:4,5] == 'a').any())
True
对于DataFrame
最简单的情况是使用numpy.any
检查True
中的至少一个2d array
:
print (dta.iloc[1:4,4:6])
E F
1 3 a
2 6 a
3 9 b
print (dta.iloc[1:4,4:6] == 'a')
E F
1 False True
2 False True
3 False False
print ((dta.iloc[1:4,4:6] == 'a').values.any())
True
答案 1 :(得分:0)
我认为您可以使用值。
在您的示例中:
if dta.iloc[[1],[5]].values=="Example":
print("Ok")