如何在xarray python中进行for循环并创建不同日期的多数据集?

哈萨因·哈利勒

我有不同日期的时间戳记列表(day_of_tuple_3Days),我想选择前7天和7天之后的每一天来创建每个案例的数据集,我该怎么做?我的可能是:

from datetime import date, timedelta
n = 0

current_date = day_of_tuple_3Days[n].isoformat()   
days_before = (day_of_tuple_3Days[n]-timedelta(days=7)).isoformat()
days_after = (day_of_tuple_3Days[n]+timedelta(days=7)).isoformat()  

case = study_area.sel(time = slice(days_before,days_after))

其中day_of_tuple_3Days是:

[Timestamp('2000-07-15 00:00:00'),
 Timestamp('2000-08-02 00:00:00'),
 Timestamp('2002-07-20 00:00:00'),
 Timestamp('2003-08-10 00:00:00'),
 Timestamp('2007-07-30 00:00:00'),
 Timestamp('2010-07-13 00:00:00'),
 Timestamp('2010-08-13 00:00:00'),
 Timestamp('2011-08-02 00:00:00'),
 Timestamp('2012-07-24 00:00:00'),
 Timestamp('2015-08-01 00:00:00'),
 Timestamp('2016-07-22 00:00:00'),
 Timestamp('2017-07-05 00:00:00'),
 Timestamp('2017-07-18 00:00:00'),
 Timestamp('2017-07-23 00:00:00'),
 Timestamp('2017-08-09 00:00:00'),
 Timestamp('2018-07-04 00:00:00'),
 Timestamp('2018-07-10 00:00:00'),
 Timestamp('2019-06-26 00:00:00'),
 Timestamp('2019-08-01 00:00:00')]

我期望:case0 case1 case2到目前为止

安禅

您可以将的列表转换Timestamp为字符串列表,然后执行以下操作:

from datetime import date, timedelta, datetime
from pandas import DataFrame

times = ['2000-07-15 00:00:00',
         '2000-08-02 00:00:00',
         '2002-07-20 00:00:00',
         '2003-08-10 00:00:00',
         '2007-07-30 00:00:00',
         '2010-07-13 00:00:00',
         '2010-08-13 00:00:00',
         '2011-08-02 00:00:00',
         '2012-07-24 00:00:00',
         '2015-08-01 00:00:00',
         '2016-07-22 00:00:00',
         '2017-07-05 00:00:00',
         '2017-07-18 00:00:00',
         '2017-07-23 00:00:00',
         '2017-08-09 00:00:00',
         '2018-07-04 00:00:00',
         '2018-07-10 00:00:00',
         '2019-06-26 00:00:00',
         '2019-08-01 00:00:00']

results = dict()
days = timedelta(7)
for i, t in enumerate(times, 1):
    y, m, d = map(int, t[:10].split('-'))
    da = date(y, m, d)
    before = da - days
    after = da + days
    results[f'case{i}'] = [f'{before} to {da}', f'{da} to {after}']

print(results)

输出:

{'case1': ['2000-07-08 to 2000-07-15', '2000-07-15 to 2000-07-22'],
 'case2': ['2000-07-26 to 2000-08-02', '2000-08-02 to 2000-08-09'],
 'case3': ['2002-07-13 to 2002-07-20', '2002-07-20 to 2002-07-27'],
 'case4': ['2003-08-03 to 2003-08-10', '2003-08-10 to 2003-08-17'],
 'case5': ['2007-07-23 to 2007-07-30', '2007-07-30 to 2007-08-06'],
 'case6': ['2010-07-06 to 2010-07-13', '2010-07-13 to 2010-07-20'],
 'case7': ['2010-08-06 to 2010-08-13', '2010-08-13 to 2010-08-20'],
 'case8': ['2011-07-26 to 2011-08-02', '2011-08-02 to 2011-08-09'],
 'case9': ['2012-07-17 to 2012-07-24', '2012-07-24 to 2012-07-31'],
 'case10': ['2015-07-25 to 2015-08-01', '2015-08-01 to 2015-08-08'],
 'case11': ['2016-07-15 to 2016-07-22', '2016-07-22 to 2016-07-29'],
 'case12': ['2017-06-28 to 2017-07-05', '2017-07-05 to 2017-07-12'],
 'case13': ['2017-07-11 to 2017-07-18', '2017-07-18 to 2017-07-25'],
 'case14': ['2017-07-16 to 2017-07-23', '2017-07-23 to 2017-07-30'],
 'case15': ['2017-08-02 to 2017-08-09', '2017-08-09 to 2017-08-16'],
 'case16': ['2018-06-27 to 2018-07-04', '2018-07-04 to 2018-07-11'],
 'case17': ['2018-07-03 to 2018-07-10', '2018-07-10 to 2018-07-17'],
 'case18': ['2019-06-19 to 2019-06-26', '2019-06-26 to 2019-07-03'],
 'case19': ['2019-07-25 to 2019-08-01', '2019-08-01 to 2019-08-08']}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在xarray数据集中细分/优化维度?

来自分类Dev

如何在XArray中合并具有不同尺寸大小的多个数据集(.h5文件)

来自分类Dev

如何在Python中使用xarray联接来自多个netCDF文件的数据?

来自分类Dev

如何整合来自不同日期的两个数据集的数据?

来自分类Dev

如何在Python中用常量(例如5)替换xarray的所有值?

来自分类Dev

如何对xarray数据集/数据数组的索引进行排序?

来自分类Dev

如何在 python 中进行重复循环?

来自分类Dev

如何合并坐标冲突的xArray数据集

来自分类Dev

Python(Pandas)如何以递增顺序合并2个具有不同日期的数据框?

来自分类Dev

如何在Python中进行while循环以使数据包生成器足够可靠

来自分类Dev

如何使用新尺寸重塑xarray数据

来自分类Dev

如何在不创建新数据集的情况下在 R 中进行子集化时使用数学运算

来自分类Dev

如何在Python中进行矩阵计算的快速循环

来自分类Dev

Firebird 1.5:如何在2个或更多数据库中进行查询

来自分类Dev

如何在casperjs中进行循环

来自分类Dev

如何在Jinja中进行for循环?

来自分类Dev

如何在 ruby 中进行循环

来自分类Dev

如何在for循环中进行rbind?

来自分类Dev

如何在 MySQL 中进行不同的排序?

来自分类Dev

如何在Java中进行循环,以在每行上打印稍有不同的字符串?

来自分类Dev

如何比较包含2组不同数据的2组不同日期?

来自分类Dev

如何在PHP中创建UTC日期,可以使用getUTCFullYear()在javascript中进行解析

来自分类Dev

如何在Shiny-折线图R中进行数据集的反应函数

来自分类Dev

如何在数据表中进行自定义日期排序?

来自分类Dev

R,如何在数据帧的循环中进行方差分析?

来自分类Dev

如何在Python中进行迭代?

来自分类常见问题

如何在Python中进行并行编程?

来自分类Dev

如何在python mako中进行分页

来自分类Dev

如何在Numpy,Python中进行过渡

Related 相关文章

  1. 1

    如何在xarray数据集中细分/优化维度?

  2. 2

    如何在XArray中合并具有不同尺寸大小的多个数据集(.h5文件)

  3. 3

    如何在Python中使用xarray联接来自多个netCDF文件的数据?

  4. 4

    如何整合来自不同日期的两个数据集的数据?

  5. 5

    如何在Python中用常量(例如5)替换xarray的所有值?

  6. 6

    如何对xarray数据集/数据数组的索引进行排序?

  7. 7

    如何在 python 中进行重复循环?

  8. 8

    如何合并坐标冲突的xArray数据集

  9. 9

    Python(Pandas)如何以递增顺序合并2个具有不同日期的数据框?

  10. 10

    如何在Python中进行while循环以使数据包生成器足够可靠

  11. 11

    如何使用新尺寸重塑xarray数据

  12. 12

    如何在不创建新数据集的情况下在 R 中进行子集化时使用数学运算

  13. 13

    如何在Python中进行矩阵计算的快速循环

  14. 14

    Firebird 1.5:如何在2个或更多数据库中进行查询

  15. 15

    如何在casperjs中进行循环

  16. 16

    如何在Jinja中进行for循环?

  17. 17

    如何在 ruby 中进行循环

  18. 18

    如何在for循环中进行rbind?

  19. 19

    如何在 MySQL 中进行不同的排序?

  20. 20

    如何在Java中进行循环,以在每行上打印稍有不同的字符串?

  21. 21

    如何比较包含2组不同数据的2组不同日期?

  22. 22

    如何在PHP中创建UTC日期,可以使用getUTCFullYear()在javascript中进行解析

  23. 23

    如何在Shiny-折线图R中进行数据集的反应函数

  24. 24

    如何在数据表中进行自定义日期排序?

  25. 25

    R,如何在数据帧的循环中进行方差分析?

  26. 26

    如何在Python中进行迭代?

  27. 27

    如何在Python中进行并行编程?

  28. 28

    如何在python mako中进行分页

  29. 29

    如何在Numpy,Python中进行过渡

热门标签

归档