<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          快速認(rèn)識(shí)Pandas的10大索引

          共 19648字,需瀏覽 40分鐘

           ·

          2022-07-31 03:01

          今天給大家?guī)?lái)一篇關(guān)于Pandas索引的文章:10種你必須掌握的Pandas索引。

          索引在我們的日常生活中其實(shí)是很常見(jiàn)的,就像:

          • 一本書有自己的目錄和具體的章節(jié),當(dāng)我們想找某個(gè)知識(shí)點(diǎn),翻到對(duì)應(yīng)的章節(jié)即可;
          • 也像圖書館中的書籍被分類成文史類、技術(shù)類、小說(shuō)類等,再加上書籍的編號(hào),很快就能夠找到我們想要的書籍。
          • 外出吃飯點(diǎn)菜的菜單,從主食類、飲料/湯類、涼菜類等,到具體的菜名等,點(diǎn)個(gè)菜即可。

          上面不同的場(chǎng)景都可以看做是一個(gè)具體的索引應(yīng)用:通過(guò)索引我們能夠快速定位數(shù)據(jù)。

          因此,基于實(shí)際需求出發(fā)創(chuàng)建的索引對(duì)我們的業(yè)務(wù)工作具有很強(qiáng)的指導(dǎo)意義。在Pandas中創(chuàng)建合適的索引則能夠方便我們的數(shù)據(jù)處理工作。

          官網(wǎng)學(xué)習(xí)地址:https://pandas.pydata.org/docs/reference/api/pandas.Index.html

          下面通過(guò)實(shí)際案例來(lái)介紹Pandas中常見(jiàn)的10種索引,以及如何創(chuàng)建它們。

          pd.Index

          Index是Pandas中的常見(jiàn)索引函數(shù),通過(guò)它能夠構(gòu)建各種類型的索引,其語(yǔ)法為:

          pandas.Index(
            data=None# 一維數(shù)組或者類似數(shù)組結(jié)構(gòu)的數(shù)據(jù)
            dtype=None,  # NumPy數(shù)據(jù)類型(默認(rèn)值:對(duì)象)
            copy=False,  # 是否生成副本
            name=None#  索引名字
            tupleize_cols=True,  # 如果為True,則盡可能嘗試創(chuàng)建 MultiIndex
            **kwargs
          )

          導(dǎo)入兩個(gè)必需的庫(kù):

          import pandas as pd
          import numpy as np

          默認(rèn)的數(shù)據(jù)類型是int64

          In [2]:

          # 通過(guò)列表來(lái)創(chuàng)建
          pd.Index([1,2,3,4])

          Out[2]:

          Int64Index([1, 2, 3, 4], dtype='int64')

          在創(chuàng)建的時(shí)候,還能夠直接指定數(shù)據(jù)類型:

          In [3]:

          # 指定索引的數(shù)據(jù)類型
          pd.Index([1,2,3,4], dtype="float64")

          Out[3]:

          Float64Index([1.0, 2.0, 3.0, 4.0], dtype='float64')

          在創(chuàng)建的時(shí)候指定名稱name和數(shù)據(jù)類型dtype:

          In [4]:

          # 指定類型和名稱
          pd.Index([1,2,3,4], 
                   dtype="float64",
                   name="Peter")

          Out[4]:

          Float64Index([1.0, 2.0, 3.0, 4.0], dtype='float64', name='Peter')

          In [5]:

          # 使用list函數(shù)生成列表來(lái)創(chuàng)建
          pd.Index(list("ABCD"))

          Out[5]:

          Index(['A''B''C''D'], dtype='object')

          使用元組來(lái)進(jìn)行創(chuàng)建:

          In [6]:

          # 使用元組來(lái)創(chuàng)建
          pd.Index(("a","b","c","d"))

          Out[6]:

          Index(['a''b''c''d'], dtype='object')

          使用集合來(lái)進(jìn)行創(chuàng)建。集合本身是無(wú)序的,所以最終的結(jié)果并不一定是按照給定的元素順序:

          In [7]:

          # 使用集合來(lái)創(chuàng)建,集合本身是無(wú)序的
          pd.Index({"x","y","z"})

          Out[7]:

          Index(['z''x''y'], dtype='object')

          pd.RangeIndex

          生成一個(gè)區(qū)間內(nèi)的索引,主要是基于Python的range函數(shù),其語(yǔ)法為:

          pandas.RangeIndex(
            start=None,  # 起始值,默認(rèn)為0
            stop=None,  # 終止值
            step=None,  # 步長(zhǎng),默認(rèn)為1
            dtype=None,  # 類型
            copy=False,  # 是否生成副本
            name=None)  # 名稱

          下面通過(guò)多個(gè)例子來(lái)講解:

          In [8]:

          pd.RangeIndex(8)  # 默認(rèn)start是0,步長(zhǎng)是1

          默認(rèn)結(jié)果中起始值是0,結(jié)束值是8(不包含),步長(zhǎng)是1:

          Out[8]:

          RangeIndex(start=0, stop=8, step=1)

          In [9]:

          pd.RangeIndex(0,8)  # 指定start和stop

          Out[9]:

          RangeIndex(start=0, stop=8, step=1)

          改變步長(zhǎng)為2:

          In [10]:

          pd.RangeIndex(0,8,2)

          Out[10]:

          RangeIndex(start=0, stop=8, step=2)

          In [11]:

          list(pd.RangeIndex(0,8,2))

          將結(jié)果用list顯示出來(lái),沒(méi)有包含stop的值8:

          Out[11]:

          [0, 2, 4, 6]

          下面的案例中將步長(zhǎng)改成-1:

          In [12]:

          pd.RangeIndex(8,0,-1)

          Out[12]:

          RangeIndex(start=8, stop=0, step=-1)

          In [13]:

          list(pd.RangeIndex(8,0,-1))

          Out[13]:

          [8, 7, 6, 5, 4, 3, 2, 1]  # 結(jié)果中不包含0

          pd.Int64Index

          指定數(shù)據(jù)類型是int64整型

          pandas.Int64Index(
            data=None,  # 生成索引的數(shù)據(jù)
            dtype=None,  # 索引類型,默認(rèn)是int64
            copy=False,  # 是否生成副本
            name=None)  # 使用名稱

          In [14]:

          pd.Int64Index([1,2,3,4])

          Out[14]:

          Int64Index([1, 2, 3, 4], dtype='int64')

          In [15]:

          pd.Int64Index([1,2.0,3,4])  # 強(qiáng)制轉(zhuǎn)成int64類型

          Out[15]:

          Int64Index([1, 2, 3, 4], dtype='int64')

          In [16]:

          pd.Int64Index([1,2,3,4],name="Peter")

          Out[16]:

          Int64Index([1, 2, 3, 4], dtype='int64', name='Peter')

          如果在數(shù)據(jù)中包含小數(shù)則會(huì)報(bào)錯(cuò):

          In [17]:

          # pd.Int64Index([1,2,3,4.4])  # 出現(xiàn)小數(shù)則報(bào)錯(cuò) 

          pd.UInt64Index

          數(shù)據(jù)類型是無(wú)符號(hào)的UInt64

          pandas.UInt64Index(
            data=None
            dtype=None
            copy=False
            name=None
          )

          In [18]:

          pd.UInt64Index([1, 2, 3, 4])

          Out[18]:

          UInt64Index([1, 2, 3, 4], dtype='uint64')

          In [19]:

          pd.UInt64Index([1, 2, 3, 4],name="Tom")  # 指定名字

          Out[19]:

          UInt64Index([1, 2, 3, 4], dtype='uint64', name='Tom')

          In [20]:

          pd.UInt64Index([1, 2.0, 3, 4],name="Tom")

          Out[20]:

          UInt64Index([1, 2, 3, 4], dtype='uint64', name='Tom')
          # 存在小數(shù)則報(bào)錯(cuò)
          pd.UInt64Index([1, 2.4, 3, 4],name="Tom")

          pd.Float64Index

          數(shù)據(jù)類型是Float64位的浮點(diǎn)型,允許小數(shù)出現(xiàn):

          pandas.Float64Index(
            data=None,  # 數(shù)據(jù)
            dtype=None,  # 類型
            copy=False,  # 是否生成副本
            name=None  # 索引名字
          )

          In [22]:

          pd.Float64Index([1, 2, 3, 4])

          Out[22]:

          Float64Index([1.0, 2.0, 3.0, 4.0], dtype='float64')

          In [23]:

          pd.Float64Index([1.5, 2.4, 3.7, 4.9])

          Out[23]:

          Float64Index([1.5, 2.4, 3.7, 4.9], dtype='float64')

          In [24]:

          pd.Float64Index([1.5, 2.4, 3.7, 4.9],name="peter")

          Out[24]:

          Float64Index([1.5, 2.4, 3.7, 4.9], dtype='float64', name='peter')

          注意:在Pandas1.4.0的版本中,上面3個(gè)函數(shù)全部統(tǒng)一成了pd.NumericIndex方法。

          pd.IntervalIndex

          pd.IntervalIndex(
            data,  # 待生成索引的數(shù)據(jù)(一維)
            closed=None,  # 區(qū)間的哪邊是關(guān)閉狀態(tài),{‘left’, ‘right’, ‘both’, ‘neither’}, default ‘right’
            dtype=None,  # 數(shù)據(jù)類型
            copy=False,  #  生成副本
            name=None,  # 索引的名字
            verify_integrity=True  # 判斷是否符合
          )

          新的 IntervalIndex 通常使用interval_range()函數(shù)來(lái)進(jìn)行構(gòu)造,基本用法:

          In [24]:

          pd.interval_range(start=0, end=6)

          Out[24]:

          IntervalIndex([(0, 1], (1, 2], (2, 3], (3, 4], (4, 5], (5, 6]],
                        closed='right',  # 默認(rèn)情況下右邊是關(guān)閉的
                        dtype='interval[int64]')

          In [25]:

          pd.interval_range(start=0, end=6, closed="neither")  # 兩邊都不關(guān)閉

          Out[25]:

          IntervalIndex([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)],
                        closed='neither',
                        dtype='interval[int64]')

          In [26]:

          pd.interval_range(start=0, end=6, closed="both")  # 兩邊都關(guān)閉

          Out[26]:

          IntervalIndex([[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6]],
                        closed='both',
                        dtype='interval[int64]')

          In [27]:

          pd.interval_range(start=0, end=6, closed="left")  # 左邊關(guān)閉

          Out[27]:

          IntervalIndex([[0, 1), [1, 2), [2, 3), [3, 4), [4, 5), [5, 6)],
                        closed='left',
                        dtype='interval[int64]')

          In [28]:

          pd.interval_range(start=0, end=6, name="peter")

          Out[28]:

          IntervalIndex([(0, 1], (1, 2], (2, 3], (3, 4], (4, 5], (5, 6]],
                        closed='right',
                        name='peter',
                        dtype='interval[int64]')

          pd.CategoricalIndex

          pandas.CategoricalIndex(
            data=None,   # 數(shù)據(jù)
            categories=None,  # 分類的數(shù)據(jù)
            ordered=None,  # 是否排序
            dtype=None,   # 數(shù)據(jù)類型
            copy=False,   # 副本
            name=None)  # 名字

          在下面的例子中我們以一批衣服的尺碼作為模擬數(shù)據(jù):

          In [29]:

          # 指定數(shù)據(jù)
          c1 = pd.CategoricalIndex(["S","M","L","XS","M","L","S","M","L","XL"])
          c1

          Out[29]:

          CategoricalIndex(
            # 數(shù)據(jù)
              ['S''M''L''XS''M''L''S''M''L''XL'], 
              # 出現(xiàn)的不同元素
              categories=['L''M''S''XL''XS'],  
              # 默認(rèn)不排序 
              ordered=False,
              # 數(shù)據(jù)類型
              dtype='category'
              )

          In [30]:

          c2 = pd.CategoricalIndex(
              ["S","M","L","XS","M","L","S","M","L","XL"],
              # 指定分類的數(shù)據(jù)
              categories=["XS","S","M","L","XL"]
          )

          c2

          Out[30]:

          CategoricalIndex(
           ['S''M''L''XS''M''L''S''M''L''XL'], 
           categories=['XS''S''M''L''XL'], 
           ordered=False, 
           dtype='category'
           )

          In [31]:

          c3 = pd.CategoricalIndex(
              # 數(shù)據(jù)
              ["S","M","L","XS","M","L","S","M","L","XL"],
              # 分類名字
              categories=["XS","S","M","L","XL"],
              # 確定排序
              ordered=True
          )

          c3

          Out[31]:

          CategoricalIndex(
           ['S''M''L''XS''M''L''S''M''L''XL'], 
           categories=['XS''S''M''L''XL'], 
           ordered=True,  # 已經(jīng)排序
           dtype='category')

          In [32]:

          c4 = pd.CategoricalIndex(
              # 待排序的數(shù)據(jù)
              ["S","M","L","XS","M","L","S","M","L","XL"],
              # 指定分類順序
              categories=["XS","S","M","L","XL"],
              # 排序
              ordered=True,
              # 索引名字
              name="category"
          )

          c4

          Out[32]:

          CategoricalIndex(
           ['S''M''L''XS''M''L''S''M''L''XL'], 
           categories=['XS''S''M''L''XL'], 
           ordered=True, 
           name='category'
           dtype='category'
           )

          CategoricalIndex 索引對(duì)象也可以從 Categorical() 方法進(jìn)行實(shí)例化得到:

          In [33]:

          c5 = pd.Categorical(["a""b""c""c""b""c""a"])

          pd.CategoricalIndex(c5)

          Out[33]:

          CategoricalIndex(
           ['a''b''c''c''b''c''a'], 
           categories=['a''b''c'], 
           ordered=False,  # 默認(rèn)不排序
           dtype='category')

          In [34]:

          pd.CategoricalIndex(c5, ordered=True)  # 指定排序

          Out[34]:

          CategoricalIndex(
           ['a''b''c''c''b''c''a'], 
           categories=['a''b''c'], 
           ordered=True, # 排序
           dtype='category')

          pd.DatetimeIndex

          以時(shí)間和日期作為索引,通過(guò)date_range函數(shù)來(lái)生成,具體語(yǔ)法為:

          pd.DatetimeIndex(
            data=None,  # 數(shù)據(jù)
            freq=NoDefault.no_default,  # 頻率
            tz=None,  #  時(shí)區(qū)
            normalize=False,  # 是否歸一化 
            closed=None,  # 區(qū)間是否關(guān)閉
            # ‘infer’, bool-ndarray, ‘NaT’, 默認(rèn)‘raise’
            ambiguous='raise',  
            dayfirst=False,  # 第一天
            yearfirst=False,  # 第一年
            dtype=None,  # 數(shù)據(jù)類型
            copy=False,  # 副本
            name=None  # 名字
          )

          以時(shí)間和日期作為索引,通過(guò)date_range函數(shù)來(lái)生成,具體例子為:

          In [35]:

          # 默認(rèn)天為頻率
          pd.date_range("2022-01-01",periods=6)

          Out[35]:

          DatetimeIndex(
           ['2022-01-01''2022-01-02'
            '2022-01-03''2022-01-04',
            '2022-01-05''2022-01-06'],
            dtype='datetime64[ns]'
            freq='D'  # 頻率
            )

          In [36]:

          # 日期作為索引,D代表天
          d1 = pd.date_range(
          "2022-01-01",
          periods=6, 
          freq="D")
          d1

          Out[36]:

          DatetimeIndex(
           ['2022-01-01''2022-01-02'
            '2022-01-03''2022-01-04',
            '2022-01-05''2022-01-06'],
            dtype='datetime64[ns]'
            freq='D')

          In [37]:

          # H代表小時(shí)
          pd.date_range("2022-01-01",periods=6, freq="H")

          Out[37]:

          DatetimeIndex(
           ['2022-01-01 00:00:00''2022-01-01 01:00:00',
            '2022-01-01 02:00:00''2022-01-01 03:00:00',
            '2022-01-01 04:00:00''2022-01-01 05:00:00'],
            dtype='datetime64[ns]'
            freq='H')

          In [38]:

          # M代表月
          pd.date_range("2022-01-01",periods=6, freq="3M")

          Out[38]:

          DatetimeIndex(
           ['2022-01-31''2022-04-30'
            '2022-07-31','2022-10-31',
            '2023-01-31''2023-04-30'],
            dtype='datetime64[ns]'
            freq='3M')

          In [39]:

          # Q代表季度

          pd.date_range("2022-01-01",periods=6, freq="Q")

          顯示的結(jié)果中以一個(gè)季度-3個(gè)月為頻率:

          Out[39]:

          DatetimeIndex(
           ['2022-03-31''2022-06-30'
            '2022-09-30','2022-12-31',
            '2023-03-31''2023-06-30'],
           dtype='datetime64[ns]'
           freq='Q-DEC')

          In [40]:

          # 指定時(shí)區(qū)tz

          pd.date_range("2022-01-01",periods=6, tz="Asia/Calcutta")

          Out[40]:

          DatetimeIndex(
           ['2022-01-01 00:00:00+05:30''2022-01-02 00:00:00+05:30',
            '2022-01-03 00:00:00+05:30''2022-01-04 00:00:00+05:30',
            '2022-01-05 00:00:00+05:30''2022-01-06 00:00:00+05:30'],
            dtype='datetime64[ns, Asia/Calcutta]', freq='D')

          pd.PeriodIndex

          pd.PeriodIndex是一個(gè)專門針對(duì)周期性數(shù)據(jù)的索引,方便針對(duì)具有一定周期的數(shù)據(jù)進(jìn)行處理,具體用法如下:

          pd.PeriodIndex(
            data=None,  # 數(shù)據(jù)
            ordinal=None,  # 序數(shù)
            freq=None,  # 頻率
            dtype=None,  # 數(shù)據(jù)類型
            copy=False,  # 副本
            name=None,  # 名字
            **fields
          )

          生成pd.PeriodIndex對(duì)象的方式1:指定開始時(shí)間、周期頻率

          In [41]:

          pd.period_range('2022-01-01 09:00', periods=5, freq='H')

          Out[41]:

          PeriodIndex(
          ['2022-01-01 09:00''2022-01-01 10:00'
          '2022-01-01 11:00','2022-01-01 12:00''2022-01-01 13:00'],
          dtype='period[H]', freq='H')

          In [42]:

          pd.period_range('2022-01-01 09:00', periods=6, freq='2D')

          Out[42]:

          PeriodIndex(
          ['2022-01-01''2022-01-03'
          '2022-01-05''2022-01-07',
          '2022-01-09''2022-01-11'],
          dtype='period[2D]'
          freq='2D')

          In [43]:

          pd.period_range('2022-01', periods=5, freq='M')

          Out[43]:

          PeriodIndex(
          ['2022-01''2022-02'
          '2022-03''2022-04''2022-05'], 
          dtype='period[M]', freq='M')

          In [44]:

          p1 = pd.DataFrame(
              {"name":["xiaoming","xiaohong","Peter","Mike","Jimmy"]},
              # 指定索引
              index=pd.period_range('2022-01-01 09:00', periods=5, freq='3H')
          )

          p1

          生成pd.PeriodIndex對(duì)象的方式2:直接使用pd.PeriodIndex方法

          In [45]:

          pd.PeriodIndex(
          ['2022-01-01''2022-01-02'
          '2022-01-03''2022-01-04'], 
          freq = '2H')

          Out[45]:

          PeriodIndex(
          ['2022-01-01 00:00''2022-01-02 00:00'
          '2022-01-03 00:00','2022-01-04 00:00'],
          dtype='period[2H]', freq='2H')

          In [46]:

          pd.PeriodIndex(
          ['2022-01''2022-02'
          '2022-03''2022-04'], 
          freq = 'M')

          Out[46]:

          PeriodIndex(
          ['2022-01''2022-02'
          '2022-03''2022-04'], 
          dtype='period[M]'
          freq='M')

          In [47]:

          pd.PeriodIndex(['2022-01''2022-07'], freq = 'Q')

          Out[47]:

          PeriodIndex(
          ['2022Q1''2022Q3'], 
          dtype='period[Q-DEC]'
          freq='Q-DEC')

          生成pd.PeriodIndex對(duì)象的方式3:利用date_range函數(shù)先生成DatetimeIndex對(duì)象

          In [48]:

          data = pd.date_range("2022-01-01",periods=6)
          data

          Out[48]:

          DatetimeIndex(
          ['2022-01-01''2022-01-02'
          '2022-01-03''2022-01-04',
          '2022-01-05''2022-01-06'],
          dtype='datetime64[ns]'
          freq='D')

          In [49]:

          pd.PeriodIndex(data=data)

          Out[49]:

          PeriodIndex(
          ['2022-01-01''2022-01-02'
          '2022-01-03''2022-01-04',
          '2022-01-05''2022-01-06'],
          dtype='period[D]', freq='D')

          In [50]:

          p2 = pd.DataFrame(np.random.randn(400, 1),
                       columns=['number'],
                       # 指定索引
                       index=pd.period_range('2021-01-01 8:00',
                                             periods=400,
                                             freq='D'))
          p2

          pd.TimedeltaIndex

          pd.TimedeltaIndex(
            data=None,  # 數(shù)據(jù)
            unit=None,  # 最小單元
            freq=NoDefault.no_default,  # 頻率 
            closed=None,  # 指定關(guān)閉的位置
            dtype=dtype('<m8[ns]'),  # 數(shù)據(jù)類型
            copy=False,  # 副本
            name=None  # 名字
          )

          創(chuàng)建方式1:指定數(shù)據(jù)和最小單元

          In [51]:

          pd.TimedeltaIndex([12, 24, 36, 48], unit='s')

          Out[51]:

          TimedeltaIndex(
           ['0 days 00:00:12''0 days 00:00:24'
           '0 days 00:00:36','0 days 00:00:48'],
           dtype='timedelta64[ns]'
           freq=None)

          In [52]:

          pd.TimedeltaIndex([1, 2, 3, 4], unit='h'# 按小時(shí)

          Out[52]:

          TimedeltaIndex(
           ['0 days 01:00:00''0 days 02:00:00'
           '0 days 03:00:00','0 days 04:00:00'],
           dtype='timedelta64[ns]'
           freq=None)

          In [53]:

          pd.TimedeltaIndex([12, 24, 36, 48], unit='h'

          Out[53]:

          TimedeltaIndex(
           ['0 days 12:00:00''1 days 00:00:00'
           '1 days 12:00:00','2 days 00:00:00'],
           dtype='timedelta64[ns]'# 數(shù)據(jù)類型
           freq=None)

          In [54]:

          pd.TimedeltaIndex([12, 24, 36, 48], unit='D')

          Out[54]:

          TimedeltaIndex(
           ['12 days''24 days''36 days''48 days'], 
           dtype='timedelta64[ns]', freq=None)

          創(chuàng)建方式2:通過(guò)timedelta_range函數(shù)來(lái)間接生成

          In [55]:

          data1 = pd.timedelta_range(start='1 day', periods=4)
          data1

          Out[55]:

          TimedeltaIndex(['1 days''2 days''3 days''4 days'], dtype='timedelta64[ns]', freq='D')

          In [56]:

          pt1 = pd.TimedeltaIndex(data1)

          pt1

          Out[56]:

          TimedeltaIndex(
           ['1 days''2 days''3 days''4 days'], 
           dtype='timedelta64[ns]', freq='D')

          In [57]:

          data2 = pd.timedelta_range(start='1 day', end='3 days', freq='6H')
          data2

          Out[57]:

          TimedeltaIndex(
           ['1 days 00:00:00''1 days 06:00:00''1 days 12:00:00',
            '1 days 18:00:00''2 days 00:00:00''2 days 06:00:00',
            '2 days 12:00:00''2 days 18:00:00''3 days 00:00:00'],
            dtype='timedelta64[ns]', freq='6H')

          In [58]:

          pt2 = pd.TimedeltaIndex(data2)

          pt2

          Out[58]:

          END -
          對(duì)比Excel系列圖書累積銷量達(dá)15w冊(cè),讓你輕松掌握數(shù)據(jù)分析技能,可以點(diǎn)擊下方鏈接進(jìn)行了解選購(gòu)

          瀏覽 31
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产女人18水真多18精品 | 欧美99视频 | 国产欧美一区二区三区在线看蜜臀 | 久久三级片电影 | 直接免费看黄色视频 |