Python 添加列时保护多索引数据类型

Python 添加列时保护多索引数据类型,python,pandas,dataframe,Python,Pandas,Dataframe,多索引有可能成为“面板”数据的有用且更灵活的替代品。更灵活的原因是,虽然传统面板在各个面板之间具有相同的列,但通过层次索引,您可以根据需要对列进行分组。但是,我找不到一种方便的方法来保护多索引中的日期dtype,因为并非每一列都与日期关联 例如,以日期作为每列分层标签的一部分的数据框开始: 将熊猫作为pd导入 字母=[“a”、“b”] 日期=列表(pd.日期\范围(start=“2019-11-12”,freq=“D”,期间=2)) index=pd.MultiIndex.from_produc

多索引
有可能成为“面板”数据的有用且更灵活的替代品。更灵活的原因是,虽然传统面板在各个面板之间具有相同的列,但通过层次索引,您可以根据需要对列进行分组。但是,我找不到一种方便的方法来保护多索引中的日期
dtype
,因为并非每一列都与日期关联

例如,以日期作为每列分层标签的一部分的
数据框开始:

将熊猫作为pd导入
字母=[“a”、“b”]
日期=列表(pd.日期\范围(start=“2019-11-12”,freq=“D”,期间=2))
index=pd.MultiIndex.from_product([字母,日期],名称=[无,日期])
df=pd.DataFrame(列=索引)
df.loc[0,:]=1
df.columns.get_level_值(“日期”).dtype

dtype('is
df3[(“bad”,pd.np.nan)]=“A”
你在找什么?我不确定我是否理解这个问题。甚至
df3[(“bad”,None)]=“A”
似乎可以节约成本dtype@Ben.T是的……差不多。愚蠢的我没有看到元组的赋值确实保护了日期数据类型,但结果索引与
d2.列
不同。第二个级别已经加长,包括
NaT
。问题是是否有更直接的方法以s结尾ame列为
d2
。我想“第二级已延长,包括NaT”是我不理解的。当我打印df2.columns和df3.columns时,我真的看不出有什么区别,你能告诉我更多区别在哪里吗?@Ben.t详细说明。谢谢你的帮助!
dtype('O')