需要一些非常奇怪的熊猫问题的帮助。
我有这个数据框df_raw
,其列索引是字符串和日期时间类型的混合。如果我运行此代码:
df = df_raw
month = pd.datetime(2018,1,1)
assert month in df.columns # this always passes
df.loc[:,month]
它引发了一个KeyError,主要是说1/1/2018不在列索引中。但显然是,否则它不会通过断言。
更令人困惑的是,如果我稍微修改第一行:
df = df_raw.iloc[:, 0:]
month = pd.datetime(2018,1,1)
assert month in df.columns # this always passes
df.loc[:,month]
它会给出正确的结果。但除了重新选择整个dataframe
(也创建了副本而不是视图)之外,我没有做任何不同的事情。
我一直在使用类似的dataframes
,其中列索引是datetime
类型和其他类型的混合,这是第一次遇到此问题。一些Python大师可以告诉我这是我正在处理的伏都教魔法是什么?