【问题标题】:how to make a slice by week and year in pandas如何在熊猫中按周和按年制作切片
【发布时间】:2022-01-13 06:18:38
【问题描述】:

我有一张桌子

Year Week Sales
2021 47 56
2021 48 5
2021 49 4
2021 50 6
2021 51 7
2021 52 10
2022 1 2
2021 2 3

我想获取 2021 年第 49 周的所有数据。但是,如果我制作以下切片:

table[(table.Year >= 2021) & (table.Week >= 49)]

从 2021 年开始,我获得了每周 >= 49 的数据。如何在不创建新列的情况下得出 2022 年 1-48 年的切片周数?我的意思是如何从 2021 年第 49 周开始从表中获取所有数据(2021 年:第 49-52 周、2022 年:第 1-52 周、2023 年:第 1-52 周等)

【问题讨论】:

  • 您需要table[table.Year == 2022) & (table.Year < 49)] 吗? conclude into the slice 是什么意思?
  • 一个选项是创建一个 MultiIndex,然后您可以使用它进行切片
  • 我的意思是如何从 2021 年第 49 周开始从表中获取所有数据(2021 年:第 49-52 周,2022 年:第 1-52 周,2023 年:第 1-52 周等)跨度>
  • 在pandas中使用日期时间格式,例如here

标签: python pandas dataframe slice


【解决方案1】:

您缺少一个 OR。 IIUC,您需要 2021 年第 49 周之后的数据。在逻辑表达式中,可以写为年份大于 2021 或年份是 2021,但周大于 49:

out = table[((table.Year == 2021) & (table.Week >= 49)) | (table.Year > 2021)]

输出:

   Year  Week  Sales
2  2021    49      4
3  2021    50      6
4  2021    51      7
5  2021    52     10
6  2022     1      2

【讨论】:

  • @jezrael OP 想要“从 2021 年第 49 周开始的表格中的所有数据(2021 年:第 49-52 周,2022 年:第 1-52 周,2023 年:第 1-52 周等)”。这会产生
猜你喜欢
  • 1970-01-01
  • 2022-10-16
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2016-06-24
  • 2020-08-27
  • 1970-01-01
相关资源
最近更新 更多