最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pandas 選取行和列數(shù)據(jù)的方法詳解

 更新時間:2019年08月08日 10:56:05   作者:Stone0823  
這篇文章主要介紹了pandas 選取行和列數(shù)據(jù)的方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前言

本文介紹在 pandas 中如何讀取數(shù)據(jù)行列的方法。數(shù)據(jù)由行和列組成,在數(shù)據(jù)庫中,一般行被稱作記錄 (record),列被稱作字段 (field)。回顧一下我們對記錄和字段的獲取方式:一般情況下,字段根據(jù)名稱獲取,記錄根據(jù)篩選條件獲取。比如獲取 student_id 和 studnent_name 兩個字段;記錄篩選,比如 sales_amount 大于 10000 的所有記錄。對于熟悉 SQL 語句的人來說,就是下面的語句:

select student_id, student_name
from exam_scores
where chinese >= 90 and math >= 90

上面的 SQL 語句表示從考試成績表 (exam_scores) 中,篩選出語文和數(shù)學都大于或等于 90 分的所有學生 id 和 name。學習 pandas 數(shù)據(jù)獲取,推薦這種以數(shù)據(jù)處理的目標為導向的方式,而不是被動的按 pandas 提供的 loc, iloc的語法中,一條條順序?qū)W習。

本篇我們要分析的關(guān)于銷售數(shù)量和金額的一組數(shù)據(jù),數(shù)據(jù)存放在 csv 文件中。示例數(shù)據(jù)我在 github 上放了一份,方便大家對照練習。

選擇列

以下兩種方法返回 Series 類型:

import pandas as pd
df = pd.read_csv('sample-salesv3.csv')
df.name
# 或者
df['name']

如果需要返回 DataFrame 格式,使用 list 作為參數(shù)。為了方便說明,給出在 jupyter notebook 中顯示的界面。

如果需要選取多列,傳給 DataFrame 一個包含列名的 list:

選擇行

假設(shè)我們要篩選 quantity < 0 的所有記錄:

按多條件篩選的處理方式。假設(shè)想篩選 quantity < 0 并且 unit price > 50 的所有記錄:

代碼:

criteria = (df['quantity'] < 0) & (df['unit price'] > 50)
df[criteria].head()

在 pandas 中,AND 條件的運算符為 & ,OR 條件的運算符為 |。假設(shè)想篩選所有 quantity > 30 或 unit price > 50 的記錄:

代碼:

criteria = (df['quantity'] > 30) | (df['unit price'] > 50)
df[criteria].head()

基于字符串的記錄篩選

如果篩選條件為基于字符串,可以使用用 Series.str.xxx 方法,主要有 startswith, endswith 和 contains等。舉一個例子,篩選出所有 name 含有 White 的記錄:

代碼:

criteria = df['name'].str.contains('White')
df[criteria].head()

這里解釋一下 pandas 布爾索引 (boolean indexing) 的概念。布爾索引的意思是首先構(gòu)建一個與 DataFrame 的 index 長度相同的一個 boolean 向量 (boolean vector),這個向量中只包含 True 或者 False,布爾索引是一個 Series。

然后 DataFrame 在篩選的時候,基于 DataFrame 的行索引,當布爾索引相同行索引所在行的 value 為 True 時,DataFrame 的這一行就包含在篩選之中,否則就排除在外。

為了能看得更加清晰,我們把上面的例子用另外一個方法來展示。創(chuàng)建一個新列:is_selected,這一列是一個布爾索引。

df['is_selected'] = df['name'].str.contains('White')

我們看到,is_selected 由 True 和 False 構(gòu)成。

構(gòu)建了 is_selected 列之后,通過df[df['name'].str.contains('White')] 篩選與下面的語句作用相同:

df[df['is_selected'] == True]

可以把 df['name'].str.contains('White') 這個布爾索引理解為構(gòu)建了一個新列,然后基于這一列進行篩選。

基于 DateTime 類型的記錄篩選

如果列的類型是 DateTime 類型,比如本示例的 date 列。pandas 讀取 csv 文件時,date 列是 str 類型,所以我們先將 date 列轉(zhuǎn)換成 datetime 類型,然后基于 pandas 的 Timestamp 類型構(gòu)建篩選條件。

# 將 date 列轉(zhuǎn)換成 datetime 類型
df['date'] = pd.to_datetime(df['date'])

# 篩選條件為日期大于 2014/4/1
criteria = df['date'] > pd.Timestamp(2014,4,1)
df[criteria].head()

同時選擇行和列

如果基于本篇所說的模式,同時選擇行和列,最簡單的方法是組合,比如先基于行構(gòu)建 DataFrame,然后再基于這個 DataFrame 選取需要的列:

where = df['name'].str.contains('White')
cols = ['name', 'quantity', 'unit price', 'ext price']
df[where][cols].head()

參考

Comparison with SQL

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python使用Quart作為web服務(wù)器的代碼實現(xiàn)

    Python使用Quart作為web服務(wù)器的代碼實現(xiàn)

    Quart 是一個異步的 Web 框架,它使用 ASGI 接口(Asynchronous Server Gateway Interface)而不是傳統(tǒng)的 WSGI,這使得 Quart 特別適合用于構(gòu)建需要處理大量并發(fā)連接的高性能 Web 應(yīng)用程序,本文給大家介紹了Python使用Quart作為web服務(wù)器的代碼實現(xiàn)
    2024-06-06
  • 使用Python制作自動推送微信消息提醒的備忘錄功能

    使用Python制作自動推送微信消息提醒的備忘錄功能

    這篇文章主要介紹了使用Python制作自動推送微信消息提醒的備忘錄功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • yolov5返回坐標的方法實例

    yolov5返回坐標的方法實例

    這篇文章主要給大家介紹了關(guān)于yolov5返回坐標的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • 使用python如何提取JSON數(shù)據(jù)指定內(nèi)容

    使用python如何提取JSON數(shù)據(jù)指定內(nèi)容

    這篇文章主要介紹了使用python如何提取JSON數(shù)據(jù)指定內(nèi)容,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python-opencv中的cv2.inRange函數(shù)用法說明

    python-opencv中的cv2.inRange函數(shù)用法說明

    這篇文章主要介紹了python-opencv中的cv2.inRange函數(shù)用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Django3中的自定義用戶模型實例詳解

    Django3中的自定義用戶模型實例詳解

    這篇文章主要給大家介紹了關(guān)于Django3中自定義用戶模型的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Python實現(xiàn)讀取mat、tif和hdr格式數(shù)據(jù)

    Python實現(xiàn)讀取mat、tif和hdr格式數(shù)據(jù)

    遙感影像數(shù)據(jù)大多以tif格式或者以hdr格式進行存儲,如果以mat格式進行存儲,不會保留坐標信息,本文將詳細介紹如何使用python來讀取這三種格式的數(shù)據(jù),需要的可以參考下
    2023-12-12
  • Python里字典的基本用法(包括嵌套字典)

    Python里字典的基本用法(包括嵌套字典)

    今天小編就為大家分享一篇關(guān)于Python里字典的基本用法(包括嵌套字典),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Python使用騰訊云API實現(xiàn)短信驗證碼功能

    Python使用騰訊云API實現(xiàn)短信驗證碼功能

    使用Python與騰訊云接口對接,實現(xiàn)短信驗證碼功能變得非常簡單,只需要幾行代碼就能夠輕松實現(xiàn)短信的發(fā)送,無須關(guān)心復(fù)雜的短信協(xié)議和底層實現(xiàn),讀者可以根據(jù)自己的實際需求,靈活使用騰訊云短信SDK提供的API來實現(xiàn)更豐富的短信功能
    2024-01-01
  • Django項目中用JS實現(xiàn)加載子頁面并傳值的方法

    Django項目中用JS實現(xiàn)加載子頁面并傳值的方法

    今天小編就為大家分享一篇Django項目中用JS實現(xiàn)加載子頁面并傳值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

互助| 迁安市| 阿瓦提县| 汽车| 泸水县| 徐汇区| 雷山县| 博客| 聂拉木县| 讷河市| 枞阳县| 乐陵市| 南召县| 邢台县| 玛曲县| 龙岩市| 大庆市| 阿图什市| 广州市| 平定县| 微博| 江山市| 武安市| 儋州市| 靖宇县| 桑日县| 商城县| 平南县| 湾仔区| 营口市| 曲周县| 祁门县| 东辽县| 鄂托克旗| 杨浦区| 新巴尔虎右旗| 云安县| 隆子县| 金溪县| 桐柏县| 普宁市|