检查索引是否在Pandas中



这里的问题是,要检查DataFrame中是否有具有特定索引的条目,可以编写一个条件:

if 'index' in df.index:
print(True)

在我的情况下,发生了一些奇怪的事情:我正在对从pyEX API/包中提取的股票信息的DataFrame进行测试,检查df.index中是否有一系列日期,例如:

for i in ['2021-11-18', '2021-04-19', '2021-06-20', '2021-05-10']:
if i in df.index:
print(i + "is an index")

问题是,即使对于没有打印在DataFrame上的日期,这也会被评估为True。不确定这怎么可能。因此,当与运行时

close    volume
date                         
2021-11-17  1092.85  31696364
2021-11-16  1071.54  26740198
2021-11-15  1037.27  35725807

我的for循环中的所有上述日期仍在按索引进行评估。这怎么可能呢?

我无法重现您的错误。下面只打印我添加的最后一个日期,它在索引中。

import pandas as pd
import io
df = pd.read_csv(io.StringIO(
"""
date,close,volume        
2021-11-17,1092.85,31696364
2021-11-16,1071.54,26740198
2021-11-15,1037.27,35725807
"""
)).set_index('date')
for i in ['2021-11-18', '2021-04-19', '2021-06-20', '2021-05-10','2021-11-15']:
if i in df.index:
print(i + " is an index")

相关内容

最新更新