Pandas df MultiIndex returns 不同 min/max 使用 get_level_values() vs index[#]
Pandas df MultiIndex returns different min/max using get_level_values() vs index[#]
我有一个带MultiIndex的df,0级是Datetime。 运行 进入以下内容:
df_fact.index.get_level_values(0).min()
Out[145]: Timestamp('2019-08-14 00:00:00')
df_fact.index.levels[0].min()
Out[146]: Timestamp('2018-09-10 00:00:00')
df_fact.index.get_level_values(0).max()
Out[147]: Timestamp('2019-11-11 23:45:00')
df_fact.index.levels[0].max()
Out[148]: Timestamp('2019-11-15 17:00:00')
为什么会有不同的结果?我错过了什么?
NM,想通了。把这个留在这里以防有人有同样愚蠢的问题。
我在上游进行了 df.xs 切片操作,减少了 DatetimeIndex,这留下了未使用的级别值,这些值(令人困惑地)只是被 remove_unused_levels() 称为级别。
已修复:
df_fact.index = df_fact.index.remove_unused_levels()
df_fact.index.levels[0].min()
Out[193]: Timestamp('2019-08-14 00:00:00')
我有一个带MultiIndex的df,0级是Datetime。 运行 进入以下内容:
df_fact.index.get_level_values(0).min()
Out[145]: Timestamp('2019-08-14 00:00:00')
df_fact.index.levels[0].min()
Out[146]: Timestamp('2018-09-10 00:00:00')
df_fact.index.get_level_values(0).max()
Out[147]: Timestamp('2019-11-11 23:45:00')
df_fact.index.levels[0].max()
Out[148]: Timestamp('2019-11-15 17:00:00')
为什么会有不同的结果?我错过了什么?
NM,想通了。把这个留在这里以防有人有同样愚蠢的问题。
我在上游进行了 df.xs 切片操作,减少了 DatetimeIndex,这留下了未使用的级别值,这些值(令人困惑地)只是被 remove_unused_levels() 称为级别。
已修复:
df_fact.index = df_fact.index.remove_unused_levels()
df_fact.index.levels[0].min()
Out[193]: Timestamp('2019-08-14 00:00:00')