【问题标题】:In pandas, how can I create a new MultiIndex levels based on another one?在 pandas 中,如何根据另一个级别创建新的 MultiIndex 级别?
【发布时间】:2022-01-08 09:25:54
【问题描述】:

例如,我已经有一个 multiIndex,它是日期时间和行号,但我想将日期时间四舍五入到最接近的分钟,并将其用作 MultiIndex 上的新级别。

【问题讨论】:

  • 请发布您的数据框的一部分和所需的输出。我的想象力不太好。

标签: pandas multi-index


【解决方案1】:

可以这样做:

df.index = pd.MultiIndex.from_tuples( [(round_to_minute(dt), row_number) for dt, row_number in df.index.values])

round_to_minute 您的日期时间舍入函数在哪里。

df.index = pd.MultiIndex.from_tuples( [(round_to_minute(dt), row_number) for dt, row_number in df.index.to_numpy()])

df.index = pd.MultiIndex.from_tuples( [(round_to_minute(dt), row_number) for dt, row_number in df.index])

也可以。

【讨论】:

  • .values 不再推荐。我还不能投票,但我会尝试
  • @athing 推荐?你的意思是?如果愿意,可以使用to_numpy()values.tolist()
  • pandas.pydata.org/docs/reference/api/pandas.Index.values.html 我不赞成的原因是你没有解释你写的代码这几乎是一个代码唯一的答案,我认为这对无论如何都没有显示任何尝试的提问者没有帮助(我还不能 dovnote 由于声誉)没有个人的
猜你喜欢
  • 1970-01-01
  • 2017-04-19
  • 2020-09-16
  • 2023-03-10
  • 2013-01-22
  • 2020-02-14
  • 2016-03-12
  • 2016-03-05
  • 1970-01-01
相关资源
最近更新 更多