日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

熊猫分发_流利的熊猫

發布時間:2023/11/29 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 熊猫分发_流利的熊猫 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

熊貓分發

Let’s uncover the practical details of Pandas’ Series, DataFrame, and Panel

讓我們揭露Pandas系列,DataFrame和Panel的實用細節

Note to the Readers: Paying attention to comments in examples would be more helpful than going through the theory itself.

讀者注意:注意示例中的注釋比通過理論本身更有用。

· Series (1D data structure: Column-vector of DataTable)· DataFrame (2D data structure: Table)· Panel (3D data structure)

· 系列(1D數據結構:DataTable的列向量) · DataFrame(2D數據結構:Table) · 面板(3D數據結構)

Pandas is a column-oriented data analysis API. It’s a great tool for handling and analyzing input data, and many ML framework support pandas data structures as inputs.

Pandas是面向列的數據分析API。 這是處理和分析輸入數據的好工具,許多ML框架都支持熊貓數據結構作為輸入。

熊貓數據結構 (Pandas Data Structures)

Refer Intro to Data Structures on Pandas docs.

請參閱 熊貓文檔上的 數據結構簡介 。

The primary data structures in pandas are implemented as two classes: DataFrame and Series.

大熊貓中的主要數據結構實現為兩類: DataFrameSeries 。

Import numpy and pandas into your namespace:

將 numpy 和 pandas 導入您的名稱空間:

import numpy as np
import pandas as pd
import matplotlib as mpl
np.__version__
pd.__version__
mpl.__version__

系列(一維數據結構:DataTable的列向量) (Series (1D data structure: Column-vector of DataTable))

CREATING SERIES

創作系列

Series is one-dimensional array having elements with non-unique labels (index), and is capable of holding any data type. The axis labels are collectively referred to as index. The general way to create a Series is to call:

系列是 一維數組,具有帶有非唯一標簽(索引)的元素 ,并且能夠保存任何數據類型。 軸標簽 統稱為 指標 。 創建系列的一般方法是調用:

pd.Series(data, index=index)

Here, data can be an NumPy’s ndarray, Python’s dict, or a scalar value (like 5). The passed index is a list of axis labels.

在這里, data 可以是NumPy的 ndarray ,Python的 dict 或標量值(如 5 )。 傳遞的 index 是軸標簽的列表。

Note: pandas supports non-unique index values. If an operation that does not support duplicate index values is attempted, an exception will be raised at that time.

注意: pandas支持 非唯一索引值 。 如果嘗試執行不支持重復索引值的操作,則此時將引發異常。

If data is list or ndarray (preferred way):

如果 data list ndarray (首選方式):

If data is an ndarray or list, then index must be of the same length as data. If no index is passed, one will be created having values [0, 1, 2, ... len(data) - 1].

如果 data 是 ndarray 或 list ,則 index 必須與 data 具有相同的長度 。 如果沒有傳遞索引,則將創建一個具有 [0, 1, 2, ... len(data) - 1] 值的索引 。

If data is a scalar value:

如果 data 是標量值:

If data is a scalar value, an index must be provided. The value will be repeated to match the length of index.

如果 data 是標量值,則 必須提供 index 。 該值將重復以匹配 index 的長度 。

If data is dict:

如果 data dict

If data is a dict, and - if index is passed the values in data corresponding to the labels in the index will be pulled out, otherwise - an index will be constructed from the sorted keys of the dict, if possible

如果 data 是一個 dict ,以及 - 如果 index 被傳遞的值在 data 對應于所述標簽的 index 將被拉出,否則 - 一個 index 將從的排序鍵來構建 dict ,如果可能的話

SERIES IS LIKE NDARRAY AND DICT COMBINED

SERIES NDARRAY DICT 結合

Series acts very similar to an ndarray, and is a valid argument to most NumPy functions. However, things like slicing also slice the index. Series can be passed to most NumPy methods expecting an 1D ndarray.

Series 行為與 ndarray 非常相似 ,并且是大多數NumPy函數的有效參數。 但是,諸如切片之類的事情也會對索引進行切片。 系列可以傳遞給大多數期望一維 ndarray NumPy方法 。

A key difference between Series and ndarray is automatically alignment of the data based on labels during Series operations. Thus, you can write computations without giving consideration to whether the Series object involved has some non-unique labels. For example,

Series 和 ndarray 之間的主要區別在于 在 Series 操作 期間,基于標簽的數據自動對齊 。 因此,您可以編寫計算而無需考慮所 涉及 的 Series 對象 是否 具有某些非唯一標簽。 例如,

The result of an operation between unaligned Seriess will have the union of the indexes involved. If a label is not found in one series or the other, the result will be marked as missing NaN.

未對齊 Series 之間的運算結果 將具有所 涉及索引 的 并集 。 如果在一個序列或另一個序列中未找到標簽,則結果將標記為缺少 NaN 。

Also note that in the above example, the index 'b' was duplicated, so s['b'] returns pandas.core.series.Series.

還要注意,在上面的示例中,索引 'b' 是重復的,因此 s['b'] 返回 pandas.core.series.Series 。

Series is also like a fixed-sized dict on which you can get and set values by index label. If a label is not contained while reading a value, KeyError exception is raised. Using the get method, a missing label will return None or specified default.

Series 還類似于固定大小的 dict ,您可以在其上通過索引標簽獲取和設置值。 如果在讀取值時不包含標簽, 則會引發 KeyError 異常。 使用 get 方法,缺少的標簽將返回 None 或指定的默認值。

SERIESNAME ATTRIBUTE

SERIES NAME ATTRIBUTE

Series can also have a name attribute (like DataFrame can have columns attribute). This is important as a DataFrame can be seen as dict of Series objects.

Series 還可以具有 name 屬性 (例如 DataFrame 可以具有 columns 屬性)。 這是很重要 DataFrame 可以看作是 dict Series 對象 。

The Series‘ name will be assigned automatically in many cases, in particular when taking 1D slices of DataFrame.

該 Series “ name 會自動在許多情況下采取的1D切片時進行分配,特別是 DataFrame 。

For example,

例如,

d = {'one' : [1., 2., 3., 4.], 'two' : [4., 3., 2., 1.]}
d = pd.DataFrame(d)
d
# one two
# 0 1.0 4.0
# 1 2.0 3.0
# 2 3.0 2.0
# 3 4.0 1.0
type(d) #=> pandas.core.frame.DataFrame
d.columns #=> Index(['one', 'two'], dtype='object')
d.index #=> RangeIndex(start=0, stop=4, step=1)s = d['one']
s
# 0 1.0
# 1 2.0
# 2 3.0
# 3 4.0
# Name: one, dtype: float64
type(s) #=> pandas.core.series.Series
s.name #=> 'one'
s.index #=> RangeIndex(start=0, stop=4, step=1)

You can rename a Series with pandas.Series.rename() method or by just assigning new name to name attribute.

您可以使用 pandas.Series.rename() 方法 重命名系列,也可以 僅將新名稱分配給 name 屬性。

s = pd.Series(np.random.randn(5), name='something')
id(s) #=> 4331187280
s.name #=> 'something's.name = 'new_name'
id(s) #=> 4331187280
s.name #=> 'new_name's.rename("yet_another_name")
id(s) #=> 4331187280
s.name #=> 'yet_another_name'

COMPLEX TRANSFORMATIONS ON SERIES USING SERIES.APPLY

使用 SERIES.APPLY SERIES 復雜的轉換

NumPy is a popular toolkit for scientific computing. Pandas’ Series can be used as argument to most NumPy functions.

NumPy是用于科學計算的流行工具包。 熊貓Series可以用作大多數NumPy函數的參數。

For complex single-column transformation, you can use Series.apply. Like Python’s map function, Series.apply accepts as an argument a lambda function which is applied to each value.

對于復雜的單列轉換,可以使用 Series.apply 。 像Python的 map 函數一樣, Series.apply 接受一個lambda函數作為參數,該函數應用于每個值。

DataFrame (2D數據結構:表格) (DataFrame (2D data structure: Table))

Refer: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html

請參閱: https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html

DataFrame is a 2D labeled data structure with columns of potentially different types. You can think of it like a spreadsheet or a SQL table, or a dict of Series objects. Like Series, DataFrame accepts many different kinds of inputs.

DataFrame 是2D標簽的數據結構,具有可能不同類型的列。 你可以認為它像一個電子表格或SQL表或 dict Series 對象 。 與 Series 一樣 , DataFrame 接受許多不同種類的輸入。

Along with the data, you can optionally pass index (row labels) and columns (column labels) arguments. Note that index can have non-unique elements (like that of Series). Similarly, columns names can also be non-unique.

與數據一起,您可以選擇傳遞 index (行標簽)columns (列標簽) 參數。 請注意, index 可以具有 非唯一 元素(例如 Series 元素 )。 同樣, columns 名也可以 是非唯一的 。

If you pass an index and/or columns, you are guaranteeing the index and / or columns of the resulting DataFrame. Thus, a dict of Series plus a specific index will discard all data not matching up to the passed index (similar to passing a dict as data to Series).

如果傳遞 index 和/或 columns ,則可以 保證 所得 DataFrame 的 index 和/或 columns 。 因此, dict 的 Series 加上特定的索引將 丟棄 所有數據不匹配到所傳遞的索引(類似于傳遞一個 dict 作為 data 到 Series )。

If axis labels (index) are not passed, they will be constructed from the input data based on common sense rules.

如果 未傳遞 軸標簽( index ),則將基于常識規則根據輸入數據構造它們。

CREATING DATAFRAMEFrom a dict of ndarrays/lists

CREATING DATAFRAME dict ndarray S / list 小號

The ndarrays/lists must all be the same length. If an index is passed, it must clearly also be the same length as that of data ndarrays. If no index is passed, then implicit index will be range(n), where n is the array length.

ndarray S / list 小號都必須是相同的長度 。 如果 傳遞 了 index ,則它顯然也必須 與數據 ndarray s的 長度相同 。 如果沒有 傳遞 index ,則隱式 index 將是 range(n) ,其中 n 是數組長度。

For example,

例如,

From a dict of Series (preferred way):

dict Series (首選方式):

The resultant index will be the union of the indexes of the various Series (each Series may be of a different length and may have different index). If there are nested dicts, these will be first converted to Series. If no columns are passed, the columns will be list of dict keys. For example,

將得到的 index 將是 各個的索引的 聯合 Series (各 Series 可以是不同的長度,并且可具有不同的 index )。 如果存在嵌套的 dict ,則將它們首先轉換為 Series 。 如果沒有 columns 都過去了, columns 將是 list 的 dict 鍵。 例如,

The row and column labels can be accessed respectively by accessing the index and columns attributes.

可以通過訪問 indexcolumns 屬性 分別訪問行和列標簽 。

From a list of dicts:

dict list

For example,

例如,

data2 = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]pd.DataFrame(data2)
# a b c
# 0 1 2 NaN
# 1 5 10 20.0pd.DataFrame(data2, index=['first', 'second'])
# a b c
# first 1 2 NaN
# second 5 10 20.0pd.DataFrame(data2, columns=['a', 'b'])
# a b
# 0 1 2
# 1 5 10

From a Series:

Series

The result will be a DataFrame with the same index as the input Series, and with one column whose name is the original name of the Series (only if no other column name provided).

結果將是一個 DataFrame ,其 index 與輸入 Series 相同 ,并且其中一列的名稱是 Series 的原始名稱 (僅當未提供其他列名稱時)。

For example,

例如,

s = pd.Series([1., 2., 3.], index=['a', 'b', 'c'])
type(s) #=> pandas.core.series.Seriesdf2 = pd.DataFrame(s)
df2
# 0
# a 1.0
# b 2.0
# c 3.0type(df2) #=> pandas.core.frame.DataFrame
df2.columns #=> RangeIndex(start=0, stop=1, step=1)
df2.index #=> Index(['a', 'b', 'c'], dtype='object')

From a Flat File

從平面文件

The pandas.read_csv (preferred way):

所述 pandas.read_csv (優選的方式):

You can read CSV files into a DataFrame using pandas.read_csv() method. Refer to the official docs for its signature.

您可以 使用 pandas.read_csv() 方法將 CSV文件讀取到 DataFrame 。 請參閱官方文檔以獲取其簽名。

For example,

例如,

CONSOLE DISPLAY AND SUMMARY

控制臺顯示和摘要

Some helpful methods and attributes:

一些有用的方法和屬性:

Wide DataFrames will be printed (print) across multiple rows by default. You can change how much to print on a single row by setting display.width option. You can adjust the max width of the individual columns by setting display.max_colwidth.

默認情況下,寬數據框將跨多行打印( print )。 您可以通過設置display.width選項更改在單行上打印的數量。 您可以通過設置display.max_colwidth來調整各個列的最大寬度。

pd.set_option('display.width', 40) # default is 80
pd.set_option('display.max_colwidth', 30)

You can also display display.max_colwidth feature via the expand_frame_repr option. This will print the table in one block.

您還可以通過expand_frame_repr選項顯示display.max_colwidth功能。 這將把表格打印成一個塊。

INDEXING ROWS AND SELECTING COLUMNS

索引行和選擇列

The basics of DataFrame indexing and selecting are as follows:

DataFrame 索引和選擇 的基礎 如下:

For example,

例如,

d = {
'one' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'a']),
'two' : pd.Series(['A', 'B', 'C', 'D'], index=['a', 'b', 'c', 'a'])
}df = pd.DataFrame(d)
df
# one two
# a 1.0 A
# b 2.0 B
# c 3.0 C
# a 4.0 Dtype(df['one']) #=> pandas.core.series.Series
df['one']
# a 1.0
# b 2.0
# c 3.0
# a 4.0
# Name: one, dtype: float64type(df[['one']]) #=> pandas.core.frame.DataFrame
df[['one']]
# one
# a 1.0
# b 2.0
# c 3.0
# a 4.0type(df[['one', 'two']]) #=> pandas.core.frame.DataFrame
df[['one', 'two']]
# one two
# a 1.0 A
# b 2.0 B
# c 3.0 C
# a 4.0 Dtype(df.loc['a']) #=> pandas.core.frame.DataFrame
df.loc['a']
# one two
# a 1.0 A
# a 4.0 Dtype(df.loc['b']) #=> pandas.core.series.Series
df.loc['b']
# one 2
# two B
# Name: b, dtype: objecttype(df.loc[['a', 'c']]) #=> pandas.core.frame.DataFrame
df.loc[['a', 'c']]
# one two
# a 1.0 A
# a 4.0 D
# c 3.0 Ctype(df.iloc[0]) #=> pandas.core.series.Series
df.iloc[0]
# one 1
# two A
# Name: a, dtype: objectdf.iloc[1:3]
# one two
# b 2.0 B
# c 3.0 Cdf.iloc[[1, 2]]
# one two
# b 2.0 B
# c 3.0 Cdf.iloc[[1, 0, 1, 0]]
# one two
# b 2.0 B
# a 1.0 A
# b 2.0 B
# a 1.0 Adf.iloc[[True, False, True, False]]
# one two
# a 1.0 A
# c 3.0 C

COLUMN ADDITION AND DELETION

列添加和刪除

You can treat a DataFrame semantically like a dict of like-indexed Series objects. Getting, setting, and deleting columns works with the same syntax as the analogous dict operations.

您可以將 DataFrame 語義上 索引相似的 Series 對象 dict 一樣 對待 。 獲取,設置和刪除列的語法與類似 dict 操作的 語法相同 。

When inserting a Series that doesn’t have the same index as the DataFrame, it will be conformed to the DataFrame‘s index (that is, only values with index matching DataFrame‘s existing index will be added, and missing index will get NaN (of the same dtype as dtype of that particular column) as value.

當插入一個 Series 不具有相同 index 的 DataFrame ,將符合該 DataFrame 的 index (即只與價值 index 匹配 DataFrame 現有 index 將被添加和缺失 index 會得到 NaN (相同 dtype 如 dtype 的特定列的)作為值。

When inserting a columns with scalar value, it will naturally be propagated to fill the column.

當插入具有標量值的列時,它自然會傳播以填充該列。

When you insert a same length (as that of DataFrame to which it is inserted) ndarray or list, it just uses existing index of the DataFrame. But, try not to use ndarrays or list directly with DataFrames, intead you can first convert them to Series as follows:

當您插入相同長度( DataFrame 插入 的 DataFrame 相同 )的 ndarray 或 list ,它僅使用 DataFrame 現有索引 。 不過,盡量不要用 ndarrays 或 list 直接與 DataFrame S,這一翻譯可以先它們轉換為 Series 如下:

df['yet_another_col'] = array_of_same_length_as_df# is same asdf['yet_another_col'] = pd.Series(array_of_same_length_as_df, index=df.index)

For example,

例如,

By default, columns get inserted at the end. The insert() method is available to insert at a particular location in the columns.

默認情況下,列會插入到末尾。 所述 insert() 方法可在列中的一個特定的位置插入。

Columns can be deleted using del, like keys of dict.

可以使用 del 刪除列 ,如dict鍵。

DATA ALIGNMENT AND ARITHMETICArithmetics between DataFrame objects

DataFrame 對象 之間的數據 DataFrame DataFrame

Data between DataFrame objects automatically align on both the columns and the index (row labels). Again, the resulting object will have the union of the column and row labels. For example,

DataFrame 對象 之間的數據會 自動 在列和索引(行標簽)對齊 。 同樣,得到的對象將有 列和行標簽的 結合 。 例如,

Important: You might like to try above example with duplicate columns names and index values in each individual data frame.

重要提示:您可能想嘗試上面的示例,在每個單獨的數據框中使用重復的列名和索引值。

Boolean operators (for example, df1 & df2) work as well.

布爾運算符(例如df1 & df2 )也可以工作。

Arithmetics between DataFrame and Series:

DataFrame Series 之間的算法

When doing an operation between DataFrame and Series, the default behavior is to broadcast Series row-wise to match rows in DataFrame and then arithmetics is performed. For example,

在 DataFrame 和 Series 之間進行操作時 ,默認行為是按 行 廣播 Series 以匹配 DataFrame 中的行 ,然后執行算術運算。 例如,

In the special case of working with time series data, and the DataFrame index also contains dates, the broadcasting will be column-wise. For example,

在使用時間序列數據的特殊情況下,并且 DataFrame 索引還包含日期,廣播將按列進行。 例如,

Here pd.date_range() is used to create fixed frequency DatetimeIndex, which is then used as index (rather than default index of 0, 1, 2, ...) for a DataFrame.

這里pd.date_range()是用于創建固定頻率DatetimeIndex,然后將其用作index (而非默認索引0, 1, 2, ... ),用于一個DataFrame 。

For explicit control over the matching and broadcasting behavior, see the section on flexible binary operations.

有關對匹配和廣播行為的顯式控制,請參見關于靈活的二進制操作的部分。

Arithmetics between DataFrame and Scalars

DataFrame 和標量 之間的算法

Operations with scalars are just as you would expect: broadcasted to each cell (that is, to all columns and rows).

標量運算與您期望的一樣:廣播到每個單元格(即,所有列和行)。

DATAFRAME METHODS AND FUNCTIONS

DATAFRAME 方法和功能

Evaluating string describing operations using eval() method

使用 eval() 方法 評估字符串描述操作

Note: Rather use assign() method.

注意:而是使用 assign() 方法。

The eval() evaluates a string describing operations on DataFrame columns. It operates on columns only, not specific rows or elements. This allows eval() to run arbitrary code, which can make you vulnerable to code injection if you pass user input into this function.

eval()評估一個字符串,該字符串描述對DataFrame列的操作。 它僅對列起作用,而不對特定的行或元素起作用。 這允許eval()運行任意代碼,如果將用戶輸入傳遞給此函數,可能會使您容易受到代碼注入的攻擊。

df = pd.DataFrame({'A': range(1, 6), 'B': range(10, 0, -2)})df
# A B
# 0 1 10
# 1 2 8
# 2 3 6
# 3 4 4
# 4 5 2df.eval('2*A + B')
# 0 12
# 1 12
# 2 12
# 3 12
# 4 12
# dtype: int64

Assignment is allowed though by default the original DataFrame is not modified. Use inplace=True to modify the original DataFrame. For example,

允許分配,盡管默認情況下不修改原始DataFrame 。 使用inplace inplace=True修改原始DataFrame。 例如,

df.eval('C = A + 2*B', inplace=True)df
# A B C
# 0 1 10 21
# 1 2 8 18
# 2 3 6 15
# 3 4 4 12
# 4 5 2 9

Assigning new columns to the copies in method chains — assign() method

在方法鏈中為副本分配新的列— assign() 方法

Inspired by dplyer‘s mutate verb, DataFrame has an assign() method that allows you to easily create new columns that are potentially derived from existing columns.

受 dplyer 的 mutate 動詞 啟發 , DataFrame 具有一個 assign() 方法,可讓您輕松創建可能從現有列派生的新列。

The assign() method always returns a copy of data, leaving the original DataFrame untouched.

的 assign() 方法 總是返回數據的副本 中,而原始 DataFrame 不變。

Note: Also check pipe() method.

注意:還要檢查 pipe() 方法。

df2 = df.assign(one_ratio = df['one']/df['out_of'])df2
# one two one_trunc out_of const one_ratio
# a 1.0 1.0 1.0 100 1 0.01
# b 2.0 2.0 2.0 100 1 0.02
# c 3.0 3.0 NaN 100 1 0.03
# d NaN 4.0 NaN 100 1 NaNid(df) #=> 4436438040
id(df2) #=> 4566906360

Above was an example of inserting a precomputed value. We can also pass in a function of one argument to be evaluated on the DataFrame being assigned to.

上面是插入預計算值的示例。 我們還可以傳入一個參數的函數,以在 要分配給 其的 DataFrame 上求值。

df3 = df.assign(one_ratio = lambda x: (x['one']/x['out_of']))
df3
# one two one_trunc out_of const one_ratio
# a 1.0 1.0 1.0 100 1 0.01
# b 2.0 2.0 2.0 100 1 0.02
# c 3.0 3.0 NaN 100 1 0.03
# d NaN 4.0 NaN 100 1 NaNid(df) #=> 4436438040
id(df3) #=> 4514692848

This way you can remove a dependency by not having to use name of the DataFrame.

這樣,您可以不必使用 DataFrame 名稱來刪除依賴 DataFrame 。

Appending rows with append() method

append() 方法 追加行

The append() method appends rows of other_data_frame DataFrame to the end of current DataFrame, returning a new object. The columns not in the current DataFrame are added as new columns.

append() 方法追加 的 other_data_frame DataFrame 到當前 DataFrame ,返回一個新對象。 當前 DataFrame 中 不在的列 將作為新列添加。

Its most useful syntax is:

它最有用的語法是:

<data_frame>.append(other_data_frame, ignore_index=False)

Here,

這里,

  • other_data_frame: Data to be appended in the form of DataFrame or Series/dict-like object, or a list of these.

    other_data_frame : DataFrame或DataFrame Series / dict的對象或它們的list形式附加的數據。

  • ignore_index: By default it is False. If it is True, then index labels of other_data_frame are ignored

    ignore_index :默認為False 。 如果為True ,則將忽略other_data_frame索引標簽

Note: Also check concat() function.

注意:還要檢查 concat() 函數。

For example,

例如,

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
df
# A B
# 0 1 2
# 1 3 4
df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
df2
# A B
# 0 5 6
# 1 7 8
df.append(df2)
# A B
# 0 1 2
# 1 3 4
# 0 5 6
# 1 7 8
df.append(df2, ignore_index=True)
# A B
# 0 1 2
# 1 3 4
# 2 5 6
# 3 7 8

The drop() method

drop() 方法

Note: Rather use del as stated in Column Addition and Deletion section, and indexing + re-assignment for keeping specific rows.

注意:最好使用“ 列添加和刪除”部分中所述的 del ,并使用索引+重新分配來保留特定行。

The drop() function removes rows or columns by specifying label names and corresponding axis, or by specifying directly index or column names. When using a multi-index, labels on different levels can be removed by specifying the level.

drop()函數通過指定標簽名稱和相應的軸,或通過直接指定索引或列名稱來刪除行或列。 使用多索引時,可以通過指定級別來刪除不同級別上的標簽。

The values attribute and copy() method

所述 values 屬性和 copy() 方法

The values attribute

values 屬性

The values attribute returns NumPy representation of a DataFrame‘s data. Only the values in the DataFrame will be returned, the axes labels will be removed. A DataFrame with mixed type columns (e.g. str/object, int64, float32) results in an ndarray of the broadest type that accommodates these mixed types.

所述 values 屬性一個的返回NumPy的表示 DataFrame 的數據。 僅 返回 DataFrame 的值, 將刪除軸標簽。 甲 DataFrame 與混合型柱(例如STR /對象,Int64類型,FLOAT32)導致的 ndarray 容納這些混合類型的最廣泛的類型。

Check Console Display section for an example.

有關示例,請參見控制臺顯示部分。

The copy() method

copy() 方法

The copy() method makes a copy of the DataFrame object’s indices and data, as by default deep is True. So, modifications to the data or indices of the copy will not be reflected in the original object.

該 copy() 方法使副本 DataFrame 對象的指標和數據,因為默認情況下 deep 為 True 。 因此,對副本的數據或索引的修改將不會反映在原始對象中。

If deep=False, a new object will be created without copying the calling object’s data or index (only references to the data and index are copied). Any changes to the data of the original will be reflected in the shallow copy (and vica versa).

如果 deep=False ,將在不復制調用對象的數據或索引的情況下創建新對象(僅復制對數據和索引的引用)。 原始數據的任何更改都將反映在淺表副本中(反之亦然)。

Its syntax is:

其語法為:

df.copy(deep=True)

Transposing using T attribute or transpose() method

使用 T 屬性或 transpose() 方法進行 transpose()

Refer section Arithmetic, matrix multiplication, and comparison operations.

請參閱算術,矩陣乘法和比較運算部分。

To transpose, you can call the method transpose(), or you can the attribute T which is accessor to transpose() method.

要進行轉置,可以調用方法 transpose() ,也可以使用屬性 T ,它是 transpose() 方法的 訪問者 。

The result is a DataFrame as a reflection of original DataFrame over its main diagonal by writing rows as columns and vice-versa. Transposing a DataFrame with mixed dtypes will result in a homogeneous DataFrame with the object dtype. In such a case, a copy of the data is always made.

結果是 通過將行寫為列, 將 DataFrame 反映 在其主對角線上 的原始 DataFrame ,反之亦然。 移調一個 DataFrame 具有混合dtypes將導致同質 DataFrame 與對象D型。 在這種情況下,始終會復制數據。

For example,

例如,

Sorting (sort_values(), sort_index()), Grouping (groupby()), and Filtering (filter())

排序( sort_values() sort_index() ),分組( groupby() )和過濾( filter() )

The sort_values() method

所述 sort_values() 方法

Dataframe can be sorted by a column (or by multiple columns) using sort_values() method.

可以使用 sort_values() 方法 按一列(或按多列)對數據 sort_values() 進行排序 。

For example,

例如,

The sort_index() method

所述 sort_index() 方法

The sort_index() method can be used to sort by index.

所述 sort_index() 方法可用于通過排序 index 。

For example,

例如,

The groupby() method

所述 groupby() 方法

The groupby() method is used to group by a function, label, or a list of labels.

所述 groupby() 方法由功能,標簽或標簽的列表用于組。

For example,

例如,

The filter() method

所述 filter() 方法

The filter() method returns subset of rows or columns of DataFrame according to labels in the specified index. Note that this method does not filter a DataFrame on its contents, the filter is applied to the labels of the index, or to the column names.

所述 filter() 方法返回的行或列的子集 DataFrame 根據在指定的索引標簽。 請注意,此方法不會 在其內容上 過濾 DataFrame 將過濾器應用于索引的標簽或列名。

You can use items, like and regex parameters, but note that they are enforced to be mutually exclusive. The parameter axis default to the info axis that is used when indexing with [].

您可以使用 items , like 和 regex 參數,但請注意,它們必須相互排斥。 參數 axis 默認為使用 [] 索引時使用的信息軸 。

For example,

例如,

Melting and Pivoting using melt() and pivot() methods

使用 melt() pivot() 方法 進行 melt() pivot()

The idea of melt() is to keep keep few given columns as id-columns and convert rest of the columns (called variable-columns) into variable and value, where the variable tells you the original columns name and value is corresponding value in original column.

melt() 的想法 是保留給定的列作為 id列 ,并將其余的列(稱為 variable-columns )轉換為 variablevalue ,其中 變量 告訴您原始列的名稱和 value 是 原始列 中的對應值柱。

If there are n variable-columns which are melted, then information from each row from the original formation is not spread to n columns.

如果有n 可變柱被熔化,那么來自原始地層的每一行的信息都不會傳播到n列。

The idea of pivot() is to do just the reverse.

pivot() 的想法 只是相反。

For example,

例如,

Piping (chaining) Functions using pipe() method

使用 pipe() 方法 進行管道(鏈接)函數

Suppose you want to apply a function to a DataFrame, Series or a groupby object, to its output then apply other, other, … functions. One way would be to perform this operation in a “sandwich” like fashion:

假設您要將一個函數應用于 DataFrame , Series 或 groupby 對象,然后將其應用于輸出,然后再應用其他其他函數。 一種方法是以類似“三明治”的方式執行此操作:

Note: Also check assign() method.

注意:還要檢查 assign() 方法。

df = foo3(foo2(foo1(df, arg1=1), arg2=2), arg3=3)

In the long run, this notation becomes fairly messy. What you want to do here is to use pipe(). Pipe can be though of as a function chaining. This is how you would perform the same task as before with pipe():

從長遠來看,這種表示會變得很混亂。 您要在此處使用 pipe() 。 管道可以作為 函數鏈接 。 這就是您使用 pipe() 執行與以前相同的任務的方式 :

df.pipe(foo1, arg1=1).
pipe(foo2, arg2=2).
pipe(foo3, arg3=3)

This way is a cleaner way that helps keep track the order in which the functions and its corresponding arguments are applied.

這種方式是一種更簡潔的方式,有助于跟蹤應用函數及其相應參數的順序。

Rolling Windows using rolling() method

使用 rolling() 方法 滾動Windows

Use DataFrame.rolling() for rolling window calculation.

使用 DataFrame.rolling() 進行滾動窗口計算。

Other DataFrame Methods

其他 DataFrame 方法

Refer Methods section in pd.DataFrame.

請參閱 pd.DataFrame 方法” 部分 。

Refer Computational Tools User Guide.

請參閱《 計算工具 用戶指南》。

Refer the categorical listing at Pandas API.

請參閱 Pandas API上 的分類清單 。

APPLYING FUNCTIONSThe apply() method: apply on columns/rows

應用函數 apply() 方法:應用于列/行

The apply() method applies the given function along an axis (by default on columns) of the DataFrame.

的 apply() 方法應用于沿軸線(默認上列)的給定的函數 DataFrame 。

Its most useful form is:

它最有用的形式是:

df.apply(func, axis=0, args, **kwds)

Here:

這里:

  • func: The function to apply to each column or row. Note that it can be a element-wise function (in which case axis=0 or axis=1 doesn’t make any difference) or an aggregate function.

    func :應用于每個列或行的函數。 請注意,它可以是按元素的函數(在這種情況下, axis=0或axis=1沒有任何區別)或聚合函數。

  • axis: Its value can be 0 (default, column) or 1. 0 means applying function to each column, and 1 means applying function to each row. Note that this axis is similar to how axis are defined in NumpPy, as for 2D ndarray, 0 means column.

    axis :其值可以是0 (默認值,列)或1 。 0表示將功能應用于每一列,而1表示將功能應用于每一行。 請注意,此axis類似于在NumpPy中定義軸的方式,對于2D ndarray, 0表示列。

  • args: It is a tuple and represents the positional arguments to pass to func in addition to the array/series.

    args :這是一個tuple ,表示除了數組/系列之外還傳遞給func的位置參數。

  • **kwds: It represents the additional keyword arguments to pass as keywords arguments to func.

    **kwds :它表示要作為func關鍵字參數傳遞的其他關鍵字參數。

It returns a Series or a DataFrame.

它返回 Series 或 DataFrame 。

For example,

例如,

The applymap() method: apply element-wise

所述 applymap() 方法:應用逐元素

The applymap() applies the given function element-wise. So, the given func must accept and return a scalar to every element of a DataFrame.

所述 applymap() 應用于給定的函數逐元素。 因此,給定的 func 必須接受并將標量返回給 DataFrame 每個元素 。

Its general syntax is:

其一般語法為:

df.applymap(func)

For example,

例如,

When you need to apply a function element-wise, you might like to check first if there is a vectorized version available. Note that a vectorized version of func often exist, which will be much faster. You could square each number element-wise using df.applymap(lambda x: x**2), but the vectorized version df**2 is better.

當需要按 元素 應用函數時 ,您可能想先檢查是否有矢量化版本。 注意的 矢量版本 func 常同時存在,這會快很多。 您可以使用 df.applymap(lambda x: x**2) 對 每個數字逐個平方 ,但是矢量化版本 df**2 更好。

WORKING WITH MISSING DATA

處理丟失的數據

Refer SciKit-Learn’s Data Cleaning section.

請參閱SciKit-Learn的“數據清理”部分。

Refer Missing Data Guide and API Reference for Missing Data Handling: dropna, fillna, replace, interpolate.

有關丟失數據的處理 , 請參閱《 丟失數據指南》 和《 API參考》: dropnafillnareplaceinterpolate

Also check Data Cleaning section of The tf.feature_column API on other options.

還要 在其他選項上 查看 tf.feature_column API 的 “ 數據清理” 部分 。

Also go through https://www.analyticsvidhya.com/blog/2016/01/12-pandas-techniques-python-data-manipulation/

也可以通過https://www.analyticsvidhya.com/blog/2016/01/12-pandas-techniques-python-data-manipulation/

NORMALIZING DATA

歸一化數據

One way is to perform df / df.iloc[0], which is particular useful while analyzing stock price over a period of time for multiple companies.

一種方法是執行 df / df.iloc[0] ,這在分析多個公司一段時間內的股價時特別有用。

THE CONCAT() FUNCTION

THE CONCAT() 函數

The concat() function performs concatenation operations along an axis while performing optional set logic (union or intersection) of the indexes (if any) on the other axis.

所述 concat() 沿軸線功能執行級聯操作,而執行索引的可選的一組邏輯(集或交集)(如果有的話)在另一軸上。

The default axis of concatenation is axis=0, but you can choose to concatenate data frames sideways by choosing axis=1.

默認的串聯 axis=0 為 axis=0 ,但是您可以通過選擇 axis=1 來選擇橫向串聯數據幀 。

Note: Also check append() method.

注意:還要檢查 append() 方法。

For example,

例如,

df1 = pd.DataFrame(
{
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']
}, index=[0, 1, 2, 3]
)df2 = pd.DataFrame(
{
'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']
}, index=[4, 5, 6, 7]
)df3 = pd.DataFrame(
{
'A': ['A8', 'A9', 'A10', 'A11'],
'B': ['B8', 'B9', 'B10', 'B11'],
'C': ['C8', 'C9', 'C10', 'C11'],
'D': ['D8', 'D9', 'D10', 'D11']
}, index=[1, 2, 3, 4]
)frames = [df1, df2, df3]df4 = pd.concat(frames)df4
# A B C D
# 0 A0 B0 C0 D0
# 1 A1 B1 C1 D1
# 2 A2 B2 C2 D2
# 3 A3 B3 C3 D3
# 4 A4 B4 C4 D4
# 5 A5 B5 C5 D5
# 6 A6 B6 C6 D6
# 7 A7 B7 C7 D7
# 1 A8 B8 C8 D8
# 2 A9 B9 C9 D9
# 3 A10 B10 C10 D10
# 4 A11 B11 C11 D11df5 = pd.concat(frames, ignore_index=True)df5
# A B C D
# 0 A0 B0 C0 D0
# 1 A1 B1 C1 D1
# 2 A2 B2 C2 D2
# 3 A3 B3 C3 D3
# 4 A4 B4 C4 D4
# 5 A5 B5 C5 D5
# 6 A6 B6 C6 D6
# 7 A7 B7 C7 D7
# 8 A8 B8 C8 D8
# 9 A9 B9 C9 D9
# 10 A10 B10 C10 D10
# 11 A11 B11 C11 D11df5 = pd.concat(frames, keys=['s1', 's2', 's3'])df5
# A B C D
# s1 0 A0 B0 C0 D0
# 1 A1 B1 C1 D1
# 2 A2 B2 C2 D2
# 3 A3 B3 C3 D3
# s2 4 A4 B4 C4 D4
# 5 A5 B5 C5 D5
# 6 A6 B6 C6 D6
# 7 A7 B7 C7 D7
# s3 1 A8 B8 C8 D8
# 2 A9 B9 C9 D9
# 3 A10 B10 C10 D10
# 4 A11 B11 C11 D11df5.index
# MultiIndex(levels=[['s1', 's2', 's3'], [0, 1, 2, 3, 4, 5, 6, 7]],
# labels=[[0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], [0, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4]])

Like its sibling function on ndarrays, numpy.concatenate(), the pandas.concat() takes a list or dict of homogeneously-typed objects and concatenates them with some configurable handling of “what to do with other axes”.

像其在ndarrays上的同級函數numpy.concatenate()一樣, numpy.concatenate() pandas.concat()同類對象的列表或字典,并通過“可與其他軸做什么”的某種可配置處理將它們連接起來。

MERGING AND JOINING USING MERGE() AND JOIN() FUNCTIONS

使用 MERGE() JOIN() 函數 合并和加入

Refer Mergem Join, and Concatenate official guide.

請參閱 Mergem Join和Concatenate 官方指南。

The function merge() merges DataFrame object by performing a database-style join operation by columns or indexes.

函數 merge() 通過按列或索引執行數據庫樣式的 DataFrame 操作來 合并 DataFrame 對象。

The function join() joins columns with other DataFrame either on index or on a key column.

函數 join() 在索引或鍵列 DataFrame 列與其他 DataFrame 連接起來 。

BINARY DUMMY VARIABLES FOR CATEGORICAL VARIABLES USING GET_DUMMIES() FUNCTION

使用 GET_DUMMIES() 函數的化學 變量的 GET_DUMMIES() 變量

To convert a categorical variable into a “dummy” DataFrame can be done using get_dummies():

可以使用 get_dummies() 將類別變量轉換為“虛擬” DataFrame :

df = pd.DataFrame({'char': list('bbacab'), 'data1': range(6)})df
# char data1
# 0 b 0
# 1 b 1
# 2 a 2
# 3 c 3
# 4 a 4
# 5 b 5dummies = pd.get_dummies(df['char'], prefix='key')
dummies
# key_a key_b key_c
# 0 0 1 0
# 1 0 1 0
# 2 1 0 0
# 3 0 0 1
# 4 1 0 0
# 5 0 1 0

PLOTTING DATAFRAME USING PLOT() FUNCTION

使用PLOT()函數繪制數據DATAFRAME

The plot() function makes plots of DataFrame using matplotlib/pylab.

plot() 函數使得地塊 DataFrame 使用matplotlib / pylab。

面板(3D數據結構) (Panel (3D data structure))

Panel is a container for 3D data. The term panel data is derived from econometrics and is partially responsible for the name: pan(el)-da(ta)-s.

面板是3D數據的容器。 面板數據一詞源自計量經濟學,部分負責名稱: pan(el)-da(ta)-s 。

The 3D structure of a Panel is much less common for many types of data analysis, than the 1D of the Series or the 2D of the DataFrame. Oftentimes, one can simply use a Multi-index DataFrame for easily working with higher dimensional data. Refer Deprecate Panel.

與Series的1D或DataFrame的2D相比, Panel的3D結構在許多類型的數據分析中要少DataFrame 。 通常,人們可以簡單地使用Multi-index DataFrame來輕松處理高維數據。 請參閱“ 不贊成使用面板” 。

Here are some related interesting stories that you might find helpful:

以下是一些相關的有趣故事,您可能會覺得有幫助:

  • Fluent NumPy

    流利的數字

  • Distributed Data Processing with Apache Spark

    使用Apache Spark進行分布式數據處理

  • Apache Cassandra — Distributed Row-Partitioned Database for Structured and Semi-Structured Data

    Apache Cassandra —用于結構化和半結構化數據的分布式行分區數據庫

  • The Why and How of MapReduce

    MapReduce的原因和方式

翻譯自: https://medium.com/analytics-vidhya/fluent-pandas-22473fa3c30d

熊貓分發

總結

以上是生活随笔為你收集整理的熊猫分发_流利的熊猫的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产美女免费观看 | 91精品视频导航 | 亚洲激情一区二区三区 | 国产女v资源在线观看 | 亚洲综合色av | 91c网站色版视频 | 免费福利在线观看 | 911精品美国片911久久久 | 黄污视频大全 | 99久久精品国产观看 | 国产成人精品亚洲日本在线观看 | 美女久久一区 | 日本在线h| 国产精品一区二区三区在线看 | 97狠狠操 | 午夜av一区 | av永久网址| 欧美精品在线一区二区 | 亚洲免费精品一区二区 | 永久黄网站色视频免费观看w | 国产精品av在线免费观看 | 91在线精品视频 | 久久人91精品久久久久久不卡 | 欧美成人精品欧美一级乱黄 | 在线看毛片网站 | 亚洲精品综合一区二区 | 一区二区三区电影 | 亚洲精品乱码久久久久久蜜桃欧美 | 中文字幕一区二区在线观看 | 久草久草在线观看 | 亚洲在线视频播放 | 国产福利在线免费观看 | 国产麻豆果冻传媒在线观看 | 国产色秀视频 | 在线视频福利 | 免费97视频 | 三级黄色大片在线观看 | 91插插视频| 精品成人久久 | 免费国产在线精品 | 国产色拍 | 日本黄色免费在线 | 国产精品毛片一区二区在线 | 国产亚洲免费的视频看 | 国产精品久久电影观看 | 999成人 | 视频成人免费 | 欧美精品免费在线观看 | 丁香婷婷色综合亚洲电影 | av电影中文字幕在线观看 | 精品免费| 久久久网| 久草免费在线视频观看 | 999久久精品 | 成人免费观看网站 | 久草在线高清视频 | wwwwwww黄| 亚洲国产一区二区精品专区 | 亚洲特级片 | 久久激情五月婷婷 | av电影一区二区三区 | 婷婷视频导航 | 伊人黄色网 | 亚洲精品综合一二三区在线观看 | 国产精品孕妇 | 成人av电影在线观看 | 四虎影视精品永久在线观看 | 成人免费大片黄在线播放 | 国产精品黄色 | 偷拍福利视频一区二区三区 | 五月天视频网站 | 久久色视频 | 成年人网站免费在线观看 | www日韩| 国产精品一区二区视频 | 射射射综合网 | 国产美女在线免费观看 | 日韩视频1区 | 日韩在线观看av | 久久国产一区二区三区 | 午夜视频导航 | av在线免费播放网站 | 欧美日韩亚洲在线 | 久久成人久久 | 伊人久操 | 999久久国精品免费观看网站 | 国产在线观看99 | 婷婷四房综合激情五月 | 亚洲黄色成人 | 51久久成人国产精品麻豆 | 日韩高清免费在线观看 | 丁香激情综合国产 | 欧美最新大片在线看 | 国产在线观看中文字幕 | 亚洲黄色在线观看 | 一级免费观看 | 在线午夜电影神马影院 | 国产色综合天天综合网 | 免费在线一区二区 | 91精品国产综合久久福利不卡 | 国产一级二级视频 | 成人在线免费观看视视频 | 特级a毛片 | 日韩在线视频一区二区三区 | 久久亚洲区 | 日韩精品视频在线免费观看 | 色婷婷综合在线 | 久久午夜羞羞影院 | 欧美最新大片在线看 | 91传媒免费在线观看 | 亚洲精品在线看 | 久草电影免费在线观看 | 97精品久久 | 六月丁香六月婷婷 | 99久精品视频| 欧美在线观看视频一区二区三区 | 精品免费久久久久 | 黄色国产在线观看 | www欧美xxxx| 中文字幕乱码电影 | 久久人91精品久久久久久不卡 | 国产麻豆精品在线观看 | av观看网站 | 日韩欧美精品在线 | 国产又粗又猛又黄又爽的视频 | 91九色精品国产 | 激情婷婷综合网 | 国产黄色一级大片 | 国产精品99久久久久久久久久久久 | 97超碰国产精品女人人人爽 | 久久久久亚洲精品男人的天堂 | 五月婷婷在线观看视频 | 成人黄色视| 日本中文字幕免费观看 | 国产精品成人一区二区 | 操一草| 黄污网站在线观看 | 免费开视频 | 色综合久久88色综合天天 | 三级性生活视频 | 久久免费电影 | 婷婷九月激情 | 亚洲人成人天堂h久久 | 丁香视频全集免费观看 | 99精品福利 | 国产精品18久久久久久vr | 成年人免费在线观看网站 | 在线观看岛国av | 一级欧美日韩 | 国产免费又爽又刺激在线观看 | 亚洲视频,欧洲视频 | 99999精品| 在线观看一区二区视频 | 久久久91精品国产一区二区精品 | 亚洲成人网av | 亚洲一级黄色片 | 日本高清久久久 | 欧美色婷婷 | 中文字幕一区二 | 国产亚洲一区二区在线观看 | 欧美婷婷色 | 色综合天天综合在线视频 | 亚洲视频免费在线看 | 中文字幕人成乱码在线观看 | 麻豆影视在线免费观看 | 国产精品尤物视频 | 日韩高清av在线 | 欧美一二三视频 | 亚洲中字幕 | 国产精品麻豆99久久久久久 | 九九热只有这里有精品 | 国产剧情一区二区 | 成人亚洲免费 | 欧美精品久久久久久久久久丰满 | 在线观看播放av | 一区二区视频在线看 | 激情久久网| 精品在线看| 免费在线a | 最近中文字幕在线中文高清版 | 国模视频一区二区 | 最新日韩在线观看视频 | 精品国产乱码一区二区三区在线 | 日韩a在线看 | 日本xxxx.com | 精品国产aⅴ麻豆 | av电影久久 | 婷婷av电影 | 中文字幕韩在线第一页 | 日日干网址 | 久久69av | 亚洲mv大片欧洲mv大片免费 | 91九色国产视频 | 成人a级黄色片 | 亚洲精品在线免费播放 | av免费在线免费观看 | 在线观看中文字幕av | 亚洲一区欧美激情 | 狠狠狠狠干| 狠狠成人 | 国产黄色一级片在线 | 亚洲美女视频在线观看 | 天天玩天天干 | 波多野结衣一区二区三区中文字幕 | 亚洲激情一区二区三区 | 国产精品综合久久久久久 | 亚洲欧洲成人 | 免费在线电影网址大全 | 在线观看你懂的网站 | 亚洲欧美日韩一区二区三区在线观看 | 91精品国产99久久久久 | 黄色中文字幕在线 | 国产黄色高清 | 91在线视频免费91 | 久久久午夜视频 | 国产私拍在线 | 日韩在线中文字幕 | www.黄色| 午夜精品影院 | 91在线观看黄 | 亚洲精品乱码久久久久久蜜桃不爽 | 国偷自产中文字幕亚洲手机在线 | 国产一级视频在线免费观看 | 九九免费精品视频在线观看 | 最近最新mv字幕免费观看 | 国产精品久久久久久影院 | 国产高清中文字幕 | 午夜国产在线观看 | 久久dvd| 中文字幕成人 | 伊人婷婷久久 | 日本性高潮视频 | 一区二区三区动漫 | 又黄又爽又湿又无遮挡的在线视频 | 婷婷丁香激情网 | 欧美日韩高清不卡 | 国产一区播放 | 成人中文字幕在线观看 | 国产成人av综合色 | 不卡的av电影| 久久99亚洲精品 | 国产在线精品二区 | 999国内精品永久免费视频 | 色av婷婷 | 91精品爽啪蜜夜国产在线播放 | 日韩精品一卡 | 免费观看久久 | 成人免费中文字幕 | 久久久精品久久日韩一区综合 | www五月天| 香蕉视频在线观看免费 | 国内精品久久久久久久 | 亚洲精品国偷自产在线91正片 | 狠狠干电影 | 国产成人333kkk| 黄色aaa级片 | 99热手机在线 | 视频在线精品 | 天天天操操操 | 久久香蕉一区 | 九九有精品 | 最新日韩在线观看视频 | 国产亚洲片 | 国产精品成人一区 | 视频精品一区二区三区 | 久9在线 | 西西444www大胆无视频 | 最近中文字幕免费观看 | 日韩免费av在线 | 成人在线观看免费视频 | 国产精品网在线观看 | 波多野结衣视频一区二区 | 99精品热 | www.午夜色.com| 日日碰狠狠添天天爽超碰97久久 | 欧美视频18| 日韩欧美一区二区三区在线 | 91九色蝌蚪在线 | 97综合网| 狠狠躁夜夜躁人人爽超碰91 | а天堂中文最新一区二区三区 | 国产在线观看免 | 在线免费精品视频 | 国产一级在线播放 | 91麻豆精品国产午夜天堂 | 成人国产精品久久久春色 | 欧美午夜精品久久久久久浪潮 | 麻豆91精品视频 | 久久久久久国产精品亚洲78 | 九九热国产视频 | 五月天婷婷在线播放 | 欧美精品在线观看免费 | 91看片看淫黄大片 | 免费a网| 国产一区视频在线播放 | 夜夜嗨av色一区二区不卡 | 免费在线观看成人小视频 | 免费在线观看污网站 | 免费久久网站 | 亚洲成色 | 亚洲欧美日韩一区二区三区在线观看 | 男女视频91 | 国产99爱 | 91综合色 | 亚洲日本va在线观看 | 国产成人综合在线观看 | 日韩在线视频线视频免费网站 | 久久中文字幕导航 | 国产欧美精品在线观看 | 一区二区视频在线免费观看 | 亚洲免费精品一区二区 | av综合网址 | 9999精品免费视频 | 69欧美视频 | 中文字幕国语官网在线视频 | av在线播放中文字幕 | 国产亚洲精品久 | 81精品国产乱码久久久久久 | 91一区二区三区久久久久国产乱 | 视频在线观看入口黄最新永久免费国产 | 天天曰天天爽 | 久久久久网址 | 在线精品视频免费播放 | 手机av电影在线观看 | 精品成人网 | 91插插插免费视频 | 天天曰天天| 91传媒在线看 | 91传媒激情理伦片 | 久久久久亚洲精品成人网小说 | 免费亚洲视频 | 高清在线一区 | 日本在线成人 | 中文字幕视频播放 | 在线观看中文字幕视频 | 91精品网站 | 国产在线91精品 | 日韩综合第一页 | 国产精品一区二区三区四 | 久久黄色免费 | 久久精品xxx | 国产精品123 | 中文字幕日韩高清 | 午夜精品视频福利 | 国产精品久久久久9999 | 一本一道久久a久久精品蜜桃 | 三级av中文字幕 | 五月婷婷电影网 | 国产成人福利在线观看 | 日韩肉感妇bbwbbwbbw | 日本久草电影 | 国产精品永久久久久久久www | 久久黄色片 | 国产成人精品久久久久蜜臀 | 久久免费av| 玖玖视频国产 | 久草免费看 | 天天人人 | 久久中文字幕导航 | 在线观看视频你懂的 | 国产馆在线播放 | 久久久久久久久久久久国产精品 | 欧美日韩另类在线 | 久久久久国产成人免费精品免费 | 99热精品免费观看 | 免费欧美| 免费一级片在线 | 69视频在线 | 国产精品久久99精品毛片三a | 日韩一区二区三区免费电影 | 国产日韩欧美在线看 | 国产精品久久一区二区三区, | 精品视频久久久 | 国产最新91 | 999久久国产精品免费观看网站 | 国产久草在线观看 | 天天干夜夜干 | 久久在线播放 | 操综合| 美女视频是黄的免费观看 | 成人网在线免费视频 | 国产精品久久久久久久婷婷 | 激情五月婷婷激情 | 久久人人97超碰国产公开结果 | 亚洲无吗天堂 | 国产色拍拍拍拍在线精品 | 婷婷射五月 | 激情五月婷婷丁香 | 日韩免费不卡视频 | 国产资源免费在线观看 | 国产精品18久久久久vr手机版特色 | 精品国产一区二区三区噜噜噜 | 亚洲一区欧美激情 | 少妇自拍av | 亚洲欧洲一区二区在线观看 | 91在线一区 | 国产一区视频在线播放 | 精品国产一区二区三区四 | 人人干人人添 | 91女人18片女毛片60分钟 | 成年人在线观看免费视频 | 日韩免费播放 | 欧美在线一二区 | 丁香久久激情 | 91网站免费观看 | 91亚洲精品国产 | 国产精品国产三级在线专区 | 99国产精品久久久久久久久久 | 日本久久影视 | 久久久久激情视频 | 99久久精品免费视频 | 黄色一级动作片 | 超碰伊人网 | 亚洲综合日韩在线 | 欧美日韩视频一区二区 | 国产手机视频 | 久久www免费视频 | 国产亚洲精品久久 | 欧美三人交 | 香蕉视频久久久 | 人人爱在线视频 | 欧美在线观看视频一区二区三区 | 国产精品小视频网站 | 综合色久 | 成人在线电影观看 | 欧美 日韩 性 | 色婷婷天天干 | 亚洲欧洲美洲av | 久久成视频 | 中文字幕一区二区三区四区视频 | 亚洲精品国偷自产在线99热 | 久草在线视频网 | 91在线亚洲| www.天天色 | 在线欧美最极品的av | 一区二区三区三区在线 | 99精品在线免费观看 | av高清一区二区三区 | 97成人精品 | 青春草视频在线播放 | 免费观看高清 | 永久免费视频国产 | 黄色软件在线观看免费 | 免费久久视频 | 国产精品久久久久久久免费观看 | 日韩欧美一区二区三区视频 | 亚洲精品在线观看的 | 色婷婷激情网 | 久久国产精品免费视频 | 日本系列中文字幕 | 国产手机在线观看视频 | 日本韩国在线不卡 | 五月婷婷综合激情网 | 在线免费视频你懂的 | 97精品国产aⅴ | 91av网站在线观看 | 免费涩涩网站 | 国产69精品久久99的直播节目 | 精品国产91亚洲一区二区三区www | av黄在线播放 | 国产一级二级三级在线观看 | 一本一本久久a久久精品综合妖精 | 久久精品久久精品久久39 | 亚洲精品中文字幕视频 | 久久99久久99精品 | 激情六月婷婷久久 | a级免费观看 | 久久国产露脸精品国产 | 视频一区二区免费 | 久久人人爽人人爽人人片av免费 | 中文字幕成人在线观看 | 成人教育av | 亚洲激情视频在线 | 黄色三级在线观看 | 91视频大全 | 久久中国精品 | 成人视屏免费看 | 一区二区三区四区免费视频 | 丁香六月色 | 久青草电影 | 日本中文字幕网址 | 午夜在线资源 | 97免费公开视频 | 在线黄av | 久久理论影院 | av在线网站观看 | 国产手机在线 | 黄色大片入口 | 黄色片视频免费 | 91日韩精品视频 | 国产精品精品国产 | 日本黄色免费看 | 中文字幕一区在线观看视频 | 色美女在线| 色窝资源| 最近中文字幕mv免费高清在线 | 狠狠干夜夜爱 | 久久久高清免费视频 | 就操操久久 | 成人免费视频网站 | 久久成人免费视频 | 中文字幕在线色 | 国产精品www | 丁香六月网 | 人人插超碰 | 久久精品久久久久久久 | 91在线麻豆 | 一区二区三区四区不卡 | 精品国内自产拍在线观看视频 | 狠狠操影视 | 久久网站免费 | 中文字幕乱码亚洲精品一区 | 天天躁日日躁狠狠 | 欧美亚洲精品一区 | av片在线观看免费 | 99精品观看 | 欧美日本高清视频 | av片一区二区 | 亚洲国产成人av网 | 国产精品久久久久国产精品日日 | 日韩精品一区二区三区免费观看 | 国产欧美日韩视频 | 91夫妻自拍| 国产第一福利 | 国产韩国日本高清视频 | 成人动漫视频在线 | 91成人在线观看高潮 | 日本字幕网 | 日本中文字幕影院 | 4p变态网欧美系列 | 国产69精品久久久久久 | 国产91成人 | 最近免费中文字幕大全高清10 | 国产精品99久久久久久久久久久久 | 成年人黄色免费视频 | 成人午夜电影网 | 欧美日韩精品在线免费观看 | 国产亚洲综合在线 | 亚洲激情在线观看 | 97电影手机版 | 久草在| 亚洲欧洲在线视频 | 日韩精品欧美视频 | 精品夜夜嗨av一区二区三区 | 日韩理论片在线 | 亚洲美女免费精品视频在线观看 | 国产在线精品区 | 国产黄色免费观看 | 欧美一级日韩三级 | 日韩综合色 | av电影在线观看 | 中文字幕综合在线 | 婷婷丁香综合 | 欧美一二三视频 | 91在线观看视频网站 | 欧美天堂久久 | 久久看视频 | 免费看网站在线 | 亚洲精品久久久蜜臀下载官网 | 少妇高潮冒白浆 | 国产欧美精品xxxx另类 | av丝袜美腿| 91黄视频在线观看 | 国产99久久九九精品 | av蜜桃在线 | av中文在线影视 | 欧美一区免费在线观看 | 中文字幕文字幕一区二区 | 欧美日bb| 一区二区国产精品 | 午夜精品久久久久久久99 | 精品国产一区二区三区久久影院 | 日韩网站免费观看 | 97国产大学生情侣白嫩酒店 | 国产专区第一页 | 91手机电视 | 免费高清av在线看 | 色久综合 | 国产黄大片在线观看 | 亚洲精品视频在线观看免费 | 天天操人人干 | 久久三级毛片 | 成人免费av电影 | 91大片网站| 日韩精品欧美精品 | 黄色aaa级片| 久久九九久久 | 中文亚洲欧美日韩 | 一级a性色生活片久久毛片波多野 | 91热爆视频 | 欧美国产日韩久久 | 色之综合网 | 国产做aⅴ在线视频播放 | 色综合婷婷久久 | 天天干天天怕 | 久久9999久久 | 日韩av午夜在线观看 | 久久在线观看视频 | 亚洲性视频| 日韩中文字幕电影 | 亚洲欧美精品一区 | 天天射天天射 | 日韩精品中文字幕在线不卡尤物 | 特级xxxxx欧美 | 国产高清在线免费观看 | 精品一二三四视频 | aaa免费毛片 | 色射色| 欧美一区二区三区免费看 | 国产一区二区精品久久91 | 国产色女人 | 国产视频精品视频 | 欧美性天天 | 亚洲免费国产视频 | 欧美人人 | 亚洲精品免费在线视频 | 欧洲精品在线视频 | 一区二区三区免费在线观看 | 草久草久 | 激情在线网站 | 免费在线观看污 | 91视频观看免费 | 天天操天天操天天操天天操天天操天天操 | 日韩在线字幕 | 999视频网站 | 永久黄网站色视频免费观看w | 天天透天天插 | 免费观看特级毛片 | 亚洲无人区小视频 | 日韩网站在线看片你懂的 | 亚洲精品午夜视频 | 亚洲有 在线 | 毛片一区二区 | 欧美黄污视频 | 婷婷六月色 | 精品女同一区二区三区在线观看 | 久久久久久久影院 | 69精品视频在线观看 | 欧美一级艳片视频免费观看 | 欧美日韩国产区 | 国产91精品在线播放 | 五月天中文字幕 | 久久视频一区二区 | 美女久久久久久久久久 | 奇米影视四色8888 | 日韩精品视频久久 | 精品亚洲va在线va天堂资源站 | 国产精品黄 | 天天操福利视频 | 免费日韩一区二区 | 国产精品video | 亚洲欧洲精品一区二区 | avcom在线| 激情综合色综合久久综合 | 久久婷婷精品视频 | av理论电影 | 黄色小网站在线观看 | 日日夜夜草 | 九色精品在线 | 久久免费试看 | 国产在线自 | 亚洲精品18p | 国产区在线 | 午夜精品一区二区三区在线播放 | 92av视频 | 免费久久久久久 | 日韩黄色软件 | 在线免费观看黄 | 国产麻豆果冻传媒在线观看 | 日本视频网 | 亚洲精品99| 欧美日韩高清一区二区 | 9ⅰ精品久久久久久久久中文字幕 | 91精品国产乱码久久 | 亚洲九九九在线观看 | 成人黄色影片在线 | 丁香婷婷基地 | 免费观看第二部31集 | 五月天天av | 日韩一级片大全 | 日韩在线观看网站 | 三级黄色a | 天天在线免费视频 | 一二区av| 免费在线成人av电影 | 欧美日韩免费视频 | 亚洲欧美乱综合图片区小说区 | 久久avav| 久草在线免费资源 | 日韩电影一区二区三区 | 久草在线精品观看 | 国产精品福利无圣光在线一区 | 日韩av网址在线 | 久久五月婷婷丁香 | 在线视频app| 日韩二区三区在线 | 免费在线观看黄网站 | 国产福利精品一区二区 | 亚洲欧美日本一区二区三区 | 久久艹在线观看 | a电影免费看 | 亚洲精品mv在线观看 | 三级a毛片 | 免费人做人爱www的视 | 国产精品一区二区av | 国产精品视频免费观看 | 国产一区免费看 | 免费亚洲婷婷 | 欧美日韩精品国产 | 国产一区国产精品 | 国产精品成人一区二区三区吃奶 | 久久久91精品国产 | 日韩免费一区二区三区 | 国产高清永久免费 | 久久不色 | 在线观看完整版 | 在线看成人 | 天天摸天天操天天舔 | 一区二区视频在线观看免费 | 亚州日韩中文字幕 | 新av在线 | 久久av在线播放 | 九九激情视频 | 亚洲国产欧美一区二区三区丁香婷 | 在线精品亚洲一区二区 | 99色在线| 一级免费黄视频 | 91av在线看 | 中文字幕亚洲高清 | 国产黄色资源 | 国产精品久久久久久久久久免费 | 久久艹在线观看 | 九九久久影视 | 亚洲精品免费视频 | 久久人人97超碰国产公开结果 | 久久久免费毛片 | 在线视频婷婷 | 激情婷婷色 | 麻豆传媒一区二区 | 午夜久久电影网 | 免费看黄的视频 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 国产福利免费在线观看 | 欧美资源在线观看 | 天天色综合天天 | 91九色视频观看 | 日韩电影一区二区三区在线观看 | 欧美日韩一区二区在线观看 | 日p视频在线观看 | 欧美久久九九 | 日韩在线视频二区 | 色噜噜日韩精品欧美一区二区 | 婷婷中文字幕综合 | 奇米网网址 | 一级黄色网址 | 欧美精品乱码久久久久久按摩 | 亚洲一级电影在线观看 | 蜜臀久久99精品久久久酒店新书 | www成人精品 | 超碰97中文 | 岛国av在线 | 视频国产区 | 国产成人一区在线 | a在线免费观看视频 | avav片| 日韩精品久久久久久久电影竹菊 | 黄色高清视频在线观看 | 日本韩国欧美在线观看 | 五月婷婷在线视频观看 | 国产在线免费观看 | 午夜手机看片 | 一级欧美黄 | 人操人| 国产无遮挡又黄又爽在线观看 | 高清av免费看 | 亚洲成人资源 | 91九色最新 | aaa黄色毛片| 天天插日日射 | 99在线视频观看 | 久久在线影院 | 四虎在线免费视频 | 天天视频亚洲 | 九九三级毛片 | 日韩网站免费观看 | 久久深夜福利免费观看 | 波多野结衣精品在线 | 香蕉视频日本 | 狠狠狠色丁香婷婷综合久久88 | 极品美女被弄高潮视频网站 | 最近中文字幕免费观看 | 国产精品久久久久久久久毛片 | 狠狠色网 | 久草视频中文 | 一区二区三区高清在线观看 | 国产小视频在线播放 | 视频在线观看一区 | 99热这里只有精品8 久久综合毛片 | 天天草网站 | 91麻豆精品国产91久久久久久久久 | 国产手机视频在线播放 | 激情欧美日韩一区二区 | 国产毛片久久久 | 偷拍久久久| www.天天成人国产电影 | 成人免费视频播放 | 国产男女免费完整视频 | 日本精品久久久久久 | 国产黄色片一级三级 | 日韩欧美精品一区二区三区经典 | 美女精品久久久 | 免费一区在线 | 国产999精品久久久 免费a网站 | 成人黄大片视频在线观看 | 月丁香婷婷| 亚洲精品播放 | 91私密保健| 蜜臀av一区二区 | 久久av不卡 | 看全黄大色黄大片 | 亚洲精品免费在线 | 乱子伦av | 99久久精品久久亚洲精品 | 久久久久久久久网站 | 天天色成人 | 91热视频在线观看 | 久久久网址 | 中文字幕制服丝袜av久久 | 91成人免费观看视频 | 成人网大片| 最新av在线播放 | 久久久久国产免费免费 | 国产精品毛片久久久久久久久久99999999 | 奇米影视8888 | 午夜视频在线观看一区 | 又黄又刺激视频 | 激情网五月婷婷 | 欧美激情h | 国产精品第 | 91在线看视频免费 | 在线看片日韩 | 婷婷六月天综合 | v片在线播放 | 99婷婷狠狠成为人免费视频 | 97精品国产91久久久久久久 | 久久经典国产视频 | 久久av中文字幕片 | 久久99国产综合精品免费 | 国产精品igao视频网网址 | 日韩精品一区二区在线观看视频 | 久免费视频 | 日韩av女优视频 | 免费a级黄色毛片 | 国产精品美女久久久久久免费 | 在线观看视频亚洲 | 久久亚洲欧美日韩精品专区 | 中文字幕在线观 | 亚洲欧美偷拍另类 | 一区二区三区电影在线播 | 日韩欧美在线不卡 | 国产精品手机在线观看 | 欧美韩日精品 | 天天天天爽 | 国产三级国产精品国产专区50 | 国产 视频 高清 免费 | www.狠狠操.com| 国产精品69av | 观看免费av | 欧美91精品国产自产 | 美国av片在线观看 | 国产原创在线视频 | 午夜久久久久久久久久影院 | 亚洲人片在线观看 | 波多在线视频 | 一区二区三区不卡在线 | 久久综合久久综合这里只有精品 | 午夜精品久久久久久久久久 | 欧美 亚洲 另类 激情 另类 | 成人毛片a | 免费视频色 | 最新亚洲视频 | 成人资源在线 | 亚洲欧美视屏 | 97超碰成人在线 | 亚洲婷久久 | 日韩av在线影视 | 日韩免费久久 | 亚洲视频在线免费看 | 欧美日一级片 | 久久免费视频在线观看30 | 欧美久久成人 | 国产成人区 | 狠狠网站| 国产不卡毛片 | ww视频在线观看 | 欧美永久视频 | 99草在线视频 | 超碰在线最新 | 国产日韩在线观看一区 | 国内精品久久久久久久久 | 美女网站视频久久 | 日本不卡一区二区三区在线观看 | 久青草视频在线观看 | 欧美韩日精品 | 欧美一级小视频 | 最近2019年日本中文免费字幕 | 久久99国产综合精品免费 | 黄色亚洲片| 97色婷婷成人综合在线观看 | 成人午夜影院 | 91大神精品视频在线观看 | 日韩av中文字幕在线免费观看 | 国产69精品久久久久9999apgf | 中文字幕在线观看免费高清电影 | 日韩电影在线观看一区二区 | 久久免费毛片视频 | 成人黄色在线视频 | 国产亚洲成av片在线观看 | 91精品一区二区三区蜜臀 | 国产综合香蕉五月婷在线 | 国内精品在线观看视频 | 国产麻豆电影在线观看 | av中文字幕在线免费观看 | www.日本色 | 国产精品123| 亚洲精品国偷自产在线99热 | 成人国产精品免费观看 | 国产午夜精品在线 | 欧美成人黄色片 | 久久精品国产第一区二区三区 | 五月天九九 | 国产日产精品一区二区三区四区的观看方式 | 欧美韩国日本在线观看 | av播放在线| 日韩av在线一区二区 | 黄色精品久久久 | 在线看的毛片 | 天天操夜夜操天天射 | 人人干网站 | 精品国精品自拍自在线 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 日韩在线三级 | 日韩视频精品在线 | 18国产精品白浆在线观看免费 | 欧美日韩视频观看 | 国产91精品在线播放 | 久久免费99精品久久久久久 | 亚洲精品国产精品99久久 | 国产在线播放一区二区三区 | 看毛片网站| 久操免费视频 | 久久一区二区三区日韩 | 香蕉97视频观看在线观看 | 韩国在线视频一区 | 国产高清综合 | 欧洲一区二区三区精品 | 夜夜躁天天躁很躁波 | 色黄www小说| 98涩涩国产露脸精品国产网 | 久久综合精品国产一区二区三区 | 成人久久精品 | 五月天电影免费在线观看一区 | 中文字幕 婷婷 | a资源在线 | 国产精品黄色av | 激情中文在线 | 欧美日韩亚洲第一 | 欧美日韩免费在线视频 | 三级av免费观看 | 国产精品小视频网站 | 99在线视频播放 | 亚洲精品乱码久久久久久蜜桃欧美 | 一区二区三区四区不卡 | 91成人精品一区在线播放 | av片一区 | 丁香花五月| 久久综合欧美精品亚洲一区 | 99色网站| 国产91在| 日本中文字幕网址 | 天天干天天草天天爽 | 黄色大片日本免费大片 | 国产精品久久久久久久免费观看 | 天天操天天射天天 | 丁香色婷| 91在线免费看片 | 中文字幕在线久一本久 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 久草在线最新视频 | 五月激情视频 | 日韩com | 色综合中文字幕 | 激情五月亚洲 | 国产成人精品一区一区一区 | 久久 国产一区 | 另类五月激情 | 性日韩欧美在线视频 | 国产真实精品久久二三区 |