如何将常规时间序列更改为日期节约时间序列?

我正在创建以下时间序列:

  private void MainCategory_ItemSelected(object sender,SelectedItemChangedEventArgs e)
    {
        var carier = e.SelectedItem as Item;






        var cart_Itemsx = new List<cart_Items>();
        cart_Itemsx.Add(new Models.cart_Items { cartid = 1,Id = carier.itid,image = carier.image,name = carier.title,price = carier.price1,quantity = "1",type = "Wash and iron" });
        cart_Itemsx.Add(new Models.cart_Items { cartid = 2,price = carier.price2,type = "iron Only" });
        SubCategory.ItemsSource = cart_Itemsx.ToList();
    }



    private void SubCategory_ItemSelected(object sender,SelectedItemChangedEventArgs e)
    {
        var dbcontet = e.SelectedItem as cart_Items;
        _dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData),"WashPro.db3");
        var db = new SQLiteConnection(_dbPath);
        db.Createtable<cart_Items>();



        var MaximumPrimaryKey = db.Table<cart_Items>().OrderByDescending(zt => zt.cartid).FirstOrDefault();

        var waltani = new cart_Items()
        {
            cartid = (MaximumPrimaryKey == null ? 1 : MaximumPrimaryKey.cartid + 1),Id = dbcontet.Id,image = dbcontet.image,name = dbcontet.name,price = dbcontet.price,quantity = dbcontet.quantity,type = dbcontet.quantity
        };

        if (MaximumPrimaryKey == null)
        {
            db.Insert(waltani);
        }
        else if (MaximumPrimaryKey != null)
        {
            var MaximumQuantityKey = db.Table<cart_Items>().Where(m => m.cartid.Equals(dbcontet.cartid) && m.type.Equals(dbcontet.type)).FirstOrDefault();

            if (MaximumQuantityKey != null)
            {
               waltani.price = dbcontet.price = 1;
                db.Update(waltani);
            }

        }
        SubCategory.SelectedItem = null;

    }

现在,我想根据import pandas as pd dti = pd.date_range('2020-01-01 00:00','2021-01-01 00:00',freq='0.25H') 中的夏时制修改此时间序列。含义: 2020年3月29日,时钟从Europe/berlin跳到29-03-2020 01:59:59,并且在 2020年10月25日,时钟将从{ {1}}至29-03-2020 03:00:00,依此类推。

我尝试做:

25-10-2020 02:59:59

但是会引发以下错误:

25-10-2020 02:00:00

我当前的时间序列dti_CEST = dti.tz_localize(tz='Europe/berlin',ambiguous='infer')

 dti_CEST = dti.tz_localize(tz='Europe/berlin',ambiguous='infer')
Traceback (most recent call last):

  File "<ipython-input-3-cb1d671c16a6>",line 1,in <module>
    dti_CEST = dti.tz_localize(tz='Europe/berlin',ambiguous='infer')

  File "C:\Users\kashy\Anaconda3\envs\py36\lib\site-packages\pandas\core\accessor.py",line 93,in f
    return self._delegate_method(name,*args,**kwargs)

  File "C:\Users\kashy\Anaconda3\envs\py36\lib\site-packages\pandas\core\indexes\datetimelike.py",line 813,in _delegate_method
    result = operator.methodcaller(name,**kwargs)(self._data)

  File "C:\Users\kashy\Anaconda3\envs\py36\lib\site-packages\pandas\core\arrays\datetimes.py",line 1151,in tz_localize
    self.asi8,tz,ambiguous=ambiguous,nonexistent=nonexistent

  File "pandas\_libs\tslibs\tzconversion.pyx",line 196,in pandas._libs.tslibs.tzconversion.tz_localize_to_utc

AmbiguousTimeError: 2020-10-25 02:00:00

所需的输出

dti

我该怎么做?

qf0923 回答:如何将常规时间序列更改为日期节约时间序列?

在创建日期时间索引时添加时区:

dti = pd.date_range('2020-01-01 00:00','2021-01-01 00:00',freq='0.25H',tz='Europe/Berlin')

dti[8450:]

DatetimeIndex(['2020-03-29 00:30:00+01:00','2020-03-29 00:45:00+01:00','2020-03-29 01:00:00+01:00','2020-03-29 01:15:00+01:00','2020-03-29 01:30:00+01:00','2020-03-29 01:45:00+01:00',------->  '2020-03-29 03:00:00+02:00','2020-03-29 03:15:00+02:00','2020-03-29 03:30:00+02:00','2020-03-29 03:45:00+02:00',...
               '2020-12-31 21:45:00+01:00','2020-12-31 22:00:00+01:00','2020-12-31 22:15:00+01:00','2020-12-31 22:30:00+01:00','2020-12-31 22:45:00+01:00','2020-12-31 23:00:00+01:00','2020-12-31 23:15:00+01:00','2020-12-31 23:30:00+01:00','2020-12-31 23:45:00+01:00','2021-01-01 00:00:00+01:00'],dtype='datetime64[ns,Europe/Berlin]',length=26687,freq='15T')
本文链接:https://www.f2er.com/2519699.html

大家都在问