【问题标题】:Looping through a date range in pandas循环遍历熊猫中的日期范围
【发布时间】:2020-03-06 09:35:18
【问题描述】:

我有一个 df 和一个 datetime 列。我需要通过每天增加数据来测试某些功能。我的 datetime range 从 9 月的最后几天到 10 月的前几天。我的问题是:我如何在每次迭代中拆分日子并“添加”更多数据?我追求的是这样的:

for d in range(0927,1010):
  fn(df[df["20100927":d])

所以一开始只有一天的数据,第二次迭代后就是两天,以此类推

另一种想法:我有

 t = pd.date_range(start='20100923', end='20101006')

我如何对df 进行切片

 for d in t:
   df["20100923": d]

编辑:我已经能够让它工作,但它并不漂亮......难道不能只迭代date_range 对象吗?我的解决方案:

D = ['2010-09-27', '2019-09-28'] #and so on
for d in D:
  df[df[D[0]:d]

【问题讨论】:

  • 也许this 会帮助你。
  • 我不是 100% 确定您要做什么。您是否在 DataFrame 中添加了新日期?或者您是否尝试考虑某个范围内的数据子集?
  • @tom:我正在考虑一个子集
  • 日期是列还是行?如果它们是行,那一列的名称是什么?
  • 有一个datetime列,里面存储了datetime对象

标签: python pandas


【解决方案1】:

怎么样:

start_index = df[df['datetime']=='20100927'].index[0]
days_to_test = 30

for offset in days_to_test:
    fn(df.iloc[start_index:start_index+offset])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 2023-02-17
    • 2011-05-19
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2014-09-08
    相关资源
    最近更新 更多