python dataframe切片_python pandas dataframe 行列選擇,切片操作方法

SQL中的select是根據列的名稱來選取;Pandas則更為靈活,不但可根據列名稱選取,還可以根據列所在的position(數字,在第幾行第幾列,注意pandas行列的position是從0開始)選取。相關函數如下:

1)loc,基于列label,可選取特定行(根據行index);

2)iloc,基于行/列的position;

3)at,根據指定行index及列label,快速定位DataFrame的元素;

4)iat,與at類似,不同的是根據position來定位的;

5)ix,為loc與iloc的混合體,既支持label也支持position;

實例

import pandas as pd

import numpy as np

df = pd.DataFrame({'total_bill': [16.99, 10.34, 23.68, 23.68, 24.59],

'tip': [1.01, 1.66, 3.50, 3.31, 3.61],

'sex': ['Female', 'Male', 'Male', 'Male', 'Female']})

# data type of columns

print df.dtypes

# indexes

print df.index

# return pandas.Index

print df.columns

# each row, return array[array]

print df.values

print df

sex object

tip float64

total_bill float64

dtype: object

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

Index([u'sex', u'tip', u'total_bill'], dtype='object')

[['Female' 1.01 16.99]

['Male' 1.66 10.34]

['Male' 3.5 23.68]

['Male' 3.31 23.68]

['Female' 3.61 24.59]]

sex tip total_bill

0 Female 1.01 16.99

1 Male 1.66 10.34

2 Male 3.50 23.68

3 Male 3.31 23.68

4 Female 3.61 24.59

print df.loc[1:3, ['total_bill', 'tip']]

print df.loc[1:3, 'tip': 'total_bill']

print df.iloc[1:3, [1, 2]]

print df.iloc[1:3, 1: 3]

total_bill tip

1 10.34 1.66

2 23.68 3.50

3 23.68 3.31

tip total_bill

1 1.66 10.34

2 3.50 23.68

3 3.31 23.68

tip total_bill

1 1.66 10.34

2 3.50 23.68

tip total_bill

1 1.66 10.34

2 3.50 23.68

錯誤的表示:

print df.loc[1:3, [2, 3]]#.loc僅支持列名操作

KeyError: 'None of [[2, 3]] are in the [columns]'

print df.loc[[2, 3]]#.loc可以不加列名,則是行選擇

sex tip total_bill

2 Male 3.50 23.68

3 Male 3.31 23.68

print df.iloc[1:3]#.iloc可以不加第幾列,則是行選擇

sex tip total_bill

1 Male 1.66 10.34

2 Male 3.50 23.68

print df.iloc[1:3, 'tip': 'total_bill']

TypeError: cannot do slice indexing on with these indexers [tip] of

print df.at[3, 'tip']

print df.iat[3, 1]

print df.ix[1:3, [1, 2]]

print df.ix[1:3, ['total_bill', 'tip']]

3.31

3.31

tip total_bill

1 1.66 10.34

2 3.50 23.68

3 3.31 23.68

total_bill tip

1 10.34 1.66

2 23.68 3.50

3 23.68 3.31

print df.ix[[1, 2]]#行選擇

sex tip total_bill

1 Male 1.66 10.34

2 Male 3.50 23.68

print df[1: 3]

print df[['total_bill', 'tip']]

# print df[1:2, ['total_bill', 'tip']] # TypeError: unhashable type

sex tip total_bill

1 Male 1.66 10.34

2 Male 3.50 23.68

total_bill tip

0 16.99 1.01

1 10.34 1.66

2 23.68 3.50

3 23.68 3.31

4 24.59 3.61

print df[1:3,1:2]

TypeError: unhashable type

總結

1).loc,.iloc,.ix,只加第一個參數如.loc([1,2]),.iloc([2:3]),.ix[2]…則進行的是行選擇

2).loc,.at,選列是只能是列名,不能是position

3).iloc,.iat,選列是只能是position,不能是列名

4)df[]只能進行行選擇,或列選擇,不能同時進行列選擇,列選擇只能是列名。

以上這篇python pandas dataframe 行列選擇,切片操作方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持我們。

本文標題: python pandas dataframe 行列選擇,切片操作方法

本文地址: http://www.cppcns.com/jiaoben/python/224997.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542559.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542559.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542559.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php根據設備判斷訪問,PHP判斷設備訪問來源

/*** 判斷用戶請求設備是否是移動設備* return bool*/function isMobile() {//如果有HTTP_X_WAP_PROFILE則一定是移動設備if (isset($_SERVER[HTTP_X_WAP_PROFILE])) {return true;}//如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息if (isset($_SERVER[HTTP_VIA])…

機器學習 深度學習 ai_如何學習機器學習和人工智能?

機器學習 深度學習 aiSTRATEGY 戰略 Learn theory practical aspects. 學習理論和實踐方面的知識。 (At first get an overview of what you are going to learn). (首先獲得要學習的內容的概述)。 Gain a good hold/insight on each concept. 掌握/理解每個概念。 If you …

linux常用命令和配置

2019獨角獸企業重金招聘Python工程師標準>>> 啟動php: /etc/init.d/php-fpm restart 查看PHP運行目錄: which php /usr/bin/php 查看php-fpm進程數: ps aux | grep -c php-fpm 查看運行內存 /usr/bin/php -i|grep mem iptables如…

centos7時間同步_centos 8.x系統配置chrony時間同步服務

centos 8.x系統配置chrony時間同步服務CentOS 7.x默認使用的時間同步服務為ntp服務,但是CentOS 8開始在官方的倉庫中移除了ntp軟件,換成默認的chrony進行時間同步的服務,chrony既可以作為客戶端向其他時間服務器發送時間同步請求,…

php可以用scanf,C/C++中 使用scanf和printf如何讀入輸出double型數據。

黃舟2017-04-17 13:47:232樓注意scanf函數和printf函數是不同尋常的函數,因為它們都沒有將函數的參數限制為固定數量。scanf函數和printf函數又可變長度的參數列表。當調用帶可變長度參數列表的函數時,編譯器會安排float參數自動轉換成為double類型&…

ICWAI和ICWA的完整形式是什么?

ICWAI / ICWA:印度成本與工程會計師協會/印度兒童福利法 (ICWAI / ICWA: Institute of Cost and Works Accountants of India / Indian Child Welfare Act) 1)ICWAI:印度成本與工程會計師協會 (1) ICWAI: Institute of Cost and Works Accountants of In…

深入研究java.lang.Runtime類【轉】

轉自:http://blog.csdn.net/lastsweetop/article/details/3961911 目錄(?)[-] javalang 類 RuntimegetRuntimeexitaddShutdownHookremoveShutdownHookhaltrunFinalizersOnExitexecexecexecexecexecexecavailableProcessorsfreeMemorytotalMemorymaxMemorygcrunFina…

java隊列實現限流,java中應對高并發的兩種策略

目的:提高可用性通過ExecutorService實現隊列泄洪//含有20個線程的線程池private ExecutorService executorService Executors.newFixedThreadPool(20);將有并發壓力的下游代碼放入到線程池的submit方法中,如下://同步調用線程池的submit方法…

crontab 日志_liunx 中定時清理過期日志文件

問題描述經常遇到日志文件過多,占用大量磁盤空間,需要定期刪除過期日志。問題涉及方面刪除過期日志的腳本。定時任務刪除任務腳本先查詢到過期的日志文件,然后刪除。語法find path -option [ -print ] [ -exec -ok command ] …

JavaScript | 數組的常用屬性和方法

JavaScript的通用屬性和數組方法 (Common properties and methods of array in JavaScript ) Properties/MethodsDescriptionsarray.lengthReturns the length of the array/total number of elements of the array array[index]Returns the item name stored at “index” pos…

php dbutils 使用,dbutilsapi

相對lisp?而?言,可以使?用.net的強?大api,實現各種酷炫功能。相對c#及arx?...文件utils.py的模塊名分別是mycompany.utils和 mycompany.web.utils。 mycompany......CouchDB -b 關閉后臺運行的 CouchDB : CouchDB -d web 訪問:http://127.0.0.1:5984/_utils/index.html E-…

html 導航欄

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>lvnian學習(http://lvnian.blog.51cto.com/)</title> <style> ul {list-style-type:none;margin:0;padding:0; }a:link,a:visited{display:block;font-weigh…

將搜索二叉樹轉換為鏈表_將給定的二叉樹轉換為雙鏈表(DLL)

將搜索二叉樹轉換為鏈表Given a Binary tree and we have to convert it to a Doubly Linked List (DLL). 給定二叉樹&#xff0c;我們必須將其轉換為雙鏈表(DLL)。 Algorithm: 算法&#xff1a; To solve the problem we can follow this algorithm: 為了解決這個問題&#…

cuda編程_CUDA刷新器:CUDA編程模型

CUDA刷新器&#xff1a;CUDA編程模型 CUDA Refresher: The CUDA Programming Model CUDA&#xff0c;CUDA刷新器&#xff0c;并行編程 這是CUDA更新系列的第四篇文章&#xff0c;它的目標是刷新CUDA中的關鍵概念、工具和初級或中級開發人員的優化。 CUDA編程模型提供了GPU體系結…

php curl_error源碼,PHP curl_error函數

PHP curl_error函數(PHP 4 > 4.0.3, PHP 5)curl_error — 返回一個保護當前會話最近一次錯誤的字符串說明string curl_error ( resource $ch )返回一條最近一次cURL操作明確的文本的錯誤信息。參數ch由 curl_init() 返回的 cURL 句柄。返回值返回錯誤信息或 (空字符串) 如果…

SQL中Where與Having的區別

“Where” 是一個約束聲明&#xff0c;使用Where來約束來之數據庫的數據&#xff0c;Where是在結果返回之前起作用的&#xff0c;且Where中不能使用聚合函數。“Having”是一個過濾聲明&#xff0c;是在查詢返回結果集以后對查詢結果進行的過濾操作&#xff0c;在Having中可以使…

java 邏輯表達式 布爾_使用基本邏輯門實現布爾表達式

java 邏輯表達式 布爾將布爾表達式轉換為邏輯電路 (Converting Boolean Expression to Logic Circuit) The simplest way to convert a Boolean expression into a logical circuit is to follow the reverse approach in which we start from the output of the Boolean expre…

python自然語言處理書籍_精通Python自然語言處理pdf

自然語言處理&#xff08;NLP&#xff09;是有關計算語言學與人工智能的研究領域之一。NLP主要關注人機交互&#xff0c;它提供了計算機和人類之間的無縫交互&#xff0c;使得計算機在機器學習的幫助下理解人類語言。 本書詳細介紹如何使用Python執行各種自然語言處理&#xff…

通達oa 2013 php解密,通達OA漏洞學習 - 安全先師的個人空間 - OSCHINA - 中文開源技術交流社區...

說明通達OA漏洞在去年上半年已爆出&#xff0c;這不趁著周末沒事做&#xff0c;將源碼下載下來進行復現學習。文件包含測試文件包含檢測&#xff0c;payload1:ip/ispirit/interface/gateway.php?json{"url":"/general/../../mysql5/my.ini"}利用文件包含訪…

溫趙輪 訪談

“溫趙輪”三大軟狗&#xff0c;你聽說過嗎&#xff1f;今天的1024訪談錄給大家介紹的就是程序員中當之無愧的偶像組合——溫趙輪。 Winter寒冬。阿里P8&#xff0c;正在向P9的道路上奔跑。傳說中的他有錢、出身好&#xff0c;可不是搞互聯網的屌絲程序員。 老趙&#xff0c;…