【发布时间】:2021-12-29 20:04:24
【问题描述】:
here 的问题指出,要检查 DataFrame 中是否存在具有特定索引的条目,可以编写条件:
if 'index' in df.index:
print(True)
就我而言,发生了一些奇怪的事情:我正在对从 pyEX API/包中提取的 Stock 信息的 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 循环中的所有上述日期仍在索引中进行评估。这怎么可能?
【问题讨论】:
-
您确定这些日期不在您的 df 中吗?当你
df.loc['2021-11-18']时会发生什么? -
我无法用您的示例重现相同的输出。它不打印任何东西。
any((date in df.index) for date in ['2021-11-18', '2021-04-19', '2021-06-20', '2021-05-10'])的结果为 False。 `
标签: python pandas dataframe indexing