操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    是一款廣泛使用的數(shù)據(jù)處理工具。結(jié)合 NumPy 和 類(lèi)庫(kù),我們可以在內(nèi)存中進(jìn)行高性能的數(shù)據(jù)清洗、轉(zhuǎn)換、分析及可視化工作。雖然 本身是一門(mén)非常容易學(xué)習(xí)的語(yǔ)言,但要熟練掌握 豐富的 API 接口及正確的使用方式,還是需要投入一定時(shí)間的。

    對(duì)于數(shù)據(jù)開(kāi)發(fā)工程師或分析師而言,SQL 語(yǔ)言是標(biāo)準(zhǔn)的數(shù)據(jù)查詢(xún)工具。本文提供了一系列的示例,如何將常見(jiàn)的 SQL 查詢(xún)語(yǔ)句使用 來(lái)實(shí)現(xiàn)。

    的安裝和基本概念并不在本文講述范圍內(nèi),請(qǐng)讀者到官網(wǎng)上閱讀相關(guān)文檔,或者閱讀《利用 進(jìn)行數(shù)據(jù)分析》一書(shū)。我推薦大家使用 套件,其中集成了集成開(kāi)發(fā)環(huán)境。在運(yùn)行下文的代碼之前,請(qǐng)先引入 和 NumPy 包:

    1. import pandas as pd

    2. import numpy as np

    FROM- 讀取數(shù)據(jù)

    首先,我們需要將數(shù)據(jù)加載到工作區(qū)(內(nèi)存)。 原生支持非常多的數(shù)據(jù)格式,CSV 是較常見(jiàn)的一種。我們以航班延誤時(shí)間數(shù)據(jù)集為例(下載地址):

    1. date,delay,distance,origin,destination

    2. 02221605,3,358,BUR,SMF

    3. 01022100,-5,239,HOU,DAL

    4. 03210808,6,288,BWI,ALB

    我們可以使用pd.函數(shù)加載它:

    1. df = pd.read_csv('flights.csv', dtype={'date': str})

    2. df.head()

    這條命令會(huì)將.csv文件讀入內(nèi)存,使用首行作為列名,并自動(dòng)檢測(cè)每一列的數(shù)據(jù)類(lèi)型。其中,由于date一列的日期格式是%m%d%H%M,自動(dòng)轉(zhuǎn)換成數(shù)字后會(huì)失去月份的前異零(02 月的 0),因此我們顯式指定了該列的dtypesql中數(shù)據(jù)類(lèi)型,告知 保留原值。

    sql中數(shù)據(jù)類(lèi)型_sql中數(shù)據(jù)為空則替換_sql中count 返回類(lèi)型

    df.head用于查看數(shù)據(jù)集的前 N 行,功能類(lèi)似于LIMIT N。如果要實(shí)現(xiàn),100,可以使用df.iloc[10:100]。此外, 終端默認(rèn)只顯示 60 行數(shù)據(jù),我們可以通過(guò)以下方法修改設(shè)置:

    1. pd.options.display.max_rows = 100

    2. df.iloc[10:100]

    另外一種常見(jiàn)的數(shù)據(jù)源是關(guān)系型數(shù)據(jù)庫(kù), 也提供了內(nèi)置支持:

    1. conn = pymysql.connect(host='localhost', user='root')

    2. df = pd.read_sql("""

    3. select `date`, `delay`, `distance`, `origin`, `destination`

    4. from flights limit 1000

    5. """, conn)

    如果要將 保存到文件或數(shù)據(jù)庫(kù)中去,可以分別使用pd.和pd.函數(shù)。

    - 選擇列

    語(yǔ)句在 SQL 中用于選擇需要的列,并對(duì)數(shù)據(jù)做清洗和轉(zhuǎn)換。

    1. df['date']

    2. df[['date', 'delay']]

    3. df.loc[10:100, ['date', 'delay']]

    SQL 提供了諸多函數(shù),大部分都可以用 來(lái)實(shí)現(xiàn),而且我們也很容易用 編寫(xiě)自定義函數(shù)。下面我將列舉一些常用的函數(shù)。

    sql中數(shù)據(jù)為空則替換_sql中數(shù)據(jù)類(lèi)型_sql中count 返回類(lèi)型

    字符串函數(shù)

    的字符串函數(shù)可以通過(guò) 和 的str屬性來(lái)調(diào)用,如df[''].str.lower()。

    1. df['origin'].str.cat(df['destination'], sep=' to ')

    2. df['origin'].str.strip()

    3. df['origin'].str.len()

    4. df['origin'].str.replace('a', 'b')

    5. df['origin'].str[0:1]

    6. df['domain'].str.split('.').str[:2].str.join('.')

    7. df['domain'].str.extract(r'^([^.]+.[^.]+)')

    有一個(gè)名為廣播的特性(),簡(jiǎn)單來(lái)說(shuō)就是能夠?qū)⒌途S數(shù)據(jù)(包括單個(gè)標(biāo)量)和高維數(shù)據(jù)進(jìn)行結(jié)合和處理。例如:

    1. df['full_date'] = '2001' + df['date']

    2. df['delay'] / 60

    3. df['delay'].div(60)

    還內(nèi)置了很多字符串函數(shù),它們的用法和 SQL 有一定區(qū)別,但功能更強(qiáng)。完整列表可以參考文檔 with Text Data。

    日期函數(shù)

    pd.用于將各種日期字符串轉(zhuǎn)換成標(biāo)準(zhǔn)的類(lèi)型。日期類(lèi)型的 都會(huì)有一個(gè)dt屬性,從中可以獲取到有關(guān)日期時(shí)間的信息,具體請(qǐng)參考文檔Time / Date 。

    1. df['datetime'] = pd.to_datetime(df['full_date'], format='%Y%m%d%H%M%S')

    2. df['datetime'].dt.strftime('%Y-%m-%d')

    3. df['datetime'].dt.month

    4. df['datetime'].dt.hour

    5. df['datetime'].view('int64') // pd.Timedelta(1, unit='s').value

    6. pd.to_datetime(df['timestamp'], unit='s')

    7. df['datetime'] + pd.Timedelta(1, unit='D')

    sql中數(shù)據(jù)為空則替換_sql中count 返回類(lèi)型_sql中數(shù)據(jù)類(lèi)型

    WHERE- 選擇行

    在 中使用邏輯表達(dá)式后,會(huì)返回一個(gè)布爾型的 ,通過(guò)它可以對(duì)數(shù)據(jù)集進(jìn)行過(guò)濾:

    1. (df['delay'] > 0).head()

    2. df[df['delay'] > 0]

    我們可以用位運(yùn)算符來(lái)組合多個(gè)查詢(xún)條件:

    1. df[(df['delay'] > 0) & (df['distance'] <= 500)]

    2. df[(df['delay'] > 0) | (df['origin'] == 'BUR')]

    3. df[~(df['delay'] > 0)]

    對(duì)于IS NULL和IS NOT NULL,也提供了相應(yīng)的內(nèi)置函數(shù):

    1. df[df['delay'].isnull()]

    2. df[df['delay'].notnull()]

    此外, 還提供了df.query方法,可以使用字符串表達(dá)式來(lái)編寫(xiě)過(guò)濾條件:

    1. df.query('delay > 0 and distaince <= 500')

    2. df.query('(delay > 0) | (origin == "BUR")')

    sql中count 返回類(lèi)型_sql中數(shù)據(jù)類(lèi)型_sql中數(shù)據(jù)為空則替換

    其實(shí), 提供了功能強(qiáng)大的數(shù)據(jù)選取工具,很多是無(wú)法用 SQL 表達(dá)出來(lái)的,建議詳細(xì)閱讀 and Data文檔,其中包含了豐富的示例。

    GROUP BY- 匯總

    1. df.groupby('origin').size()

    聚合運(yùn)算包含了兩個(gè)部分,一是分組字段,二是聚合函數(shù)。我們可以傳遞多個(gè)分組字段給df.sql中數(shù)據(jù)類(lèi)型,也能夠指定多個(gè)聚合函數(shù):

    1. df.groupby(['origin', 'destination']).agg({

    2. ? ?'delay': np.sum,

    3. ? ?'distance': np.mean

    4. })

    5. df.groupby('origin')['delay'].agg(['min', 'max'])

    我們還可以將函數(shù)的運(yùn)行結(jié)果作為分組條件。更多示例請(qǐng)見(jiàn)Group By: split-apply-。

    1. df.set_index('origin').groupby(len).size()

    ORDER BY- 排序

    中有兩類(lèi)排序,按索引和按數(shù)值。如果不了解 的索引,還請(qǐng)自行查閱相關(guān)教程。

    sql中數(shù)據(jù)類(lèi)型_sql中count 返回類(lèi)型_sql中數(shù)據(jù)為空則替換

    1. df.set_index('origin').sort_index()

    2. df.sort_values(by='origin')

    3. df.sort_values(by=['origin', 'destination'], ascending=[True, False])

    JOIN- 關(guān)聯(lián)查詢(xún)

    1. pd.merge(df_product, df_category, left_on='cid', right_on='id', how='left')

    如果聯(lián)合查詢(xún)的鍵是同名的,可以直接使用on=['k1','k2']。默認(rèn)的關(guān)聯(lián)方式是INNER JOIN(how='inner'),其它還有左外連接(left)、右外連接(right)、以及FULL OUTER JOIN(outer)。

    pd.可用于實(shí)現(xiàn)UNION查詢(xún)。 更多關(guān)聯(lián)查詢(xún)的示例請(qǐng)參考Merge, join, and 。

    1. pd.concat([df_a, df_b]).drop_duplicates()

    最后,我們經(jīng)常會(huì)需要在分組中按某種規(guī)則排序,并獲得前幾位的記錄。MySQL 中需要通過(guò)變量來(lái)實(shí)現(xiàn), 中則可以使用rank函數(shù):

    1. rnk = df.groupby('origin')['delay'].rank(method='first', ascending=False)

    2. df.assign(rnk=rnk).query('rnk <= 3').sort_values(['origin', 'rnk'])

    參考資料

    題圖:,CC0 授權(quán)。

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有