pandas主要的兩個資料結構是:series(相當於一行或一列資料結構和dataframe(相當於多行多列的乙個**資料機構)。
原文:dataframe.
drop
(labels=none, axis=0, index=none, columns=none, level=none, inplace=false, errors='raise'
)inplace = true 時,會使dataframe刪除對應的行或列,否則,dataframe保持不變,只是返回刪除後的結果。
1.重新索引:reindex和ix
1.1 series
比方說:data=series([4,5,6],index=['a','b','c']),行索引為a,b,c。
我們用data.reindex(['a','c','d','e'])修改索引後則輸出:
可以理解成我們用reindex設了索引後,根據索引去原來data裡面匹配對應的值,沒匹配上的就是nan。
1.2 dataframe
(1)行索引修改:dataframe行索引同series
(2)列索引修改:列索引用reindex(columns=['m1','m2','m3']),用引數columns來指定對列索引進行修改。修改邏輯類似行索引,也是相當於用新列索引去匹配原來的資料,沒匹配上的置nan
例:
(3)同時對行和列索引進行修改可以用
2.丟棄指定軸上的列(通俗的說法就是刪除行或者列):drop
通過索引進行選擇刪除哪一行或者哪一列
data.drop(['a','c']) 相當於delete table a where xid='a' or xid='c'
data.drop('m1',axis=1)相當於delete table a where yid='m1'
3.選取和過濾(通俗的說就是sql中按照條件篩選查詢)
python中因為有行列索引,在做資料的篩選會比較方便
3.1 series
(1)按照行索引進行選擇如
#前者是不包含末端,後者是包含了末端
(2)按照值的大小進行篩選obj[obj>-0.6]相當於在obj資料中找出值比-0.6大的記錄進行展示
(1)選擇單行用ix或者xs:
如篩選索引為b的那條行記錄用以下三種方式
(2)選擇多行:
篩選索引為a,b的兩條行記錄的方式
#以上不能直接寫成data[['a','b']]
data[0:2]表示從第一行到第二行的記錄。第一行預設從0開始數,不包含末端的2。
(3)選擇單列
篩選m1列的所有行記錄資料
(4)選擇多列
篩選m1,m3兩個列,所有行記錄的資料
ix[:,['m1','m2']]前面的:表示所有的行都篩選進來。
(5)根據值的大小條件篩選行或者列
如篩選出某一列值大於4的所有記錄相當於select * from tb where 列名》4
(6)如果篩選某列值大於4的所有記錄,且只需展示部分列的情況時
行用條件進行篩選,列用[0,2]篩選第一列和第三列的資料
或參考:
pandas獲取指定的列和行
house info pd.read csv house info.csv 1 取行的操作 house info.loc 3 6 類似於python的切片操作 2 取列操作 house info price 這是讀取csv檔案時預設的第一行索引 3 取兩列 house info price trad...
pandas獲取指定的列和行
house info pd.read csv house info.csv 1 取行的操作 house info.loc 3 6 類似於python的切片操作 2 取列操作 house info price 這是讀取csv檔案時預設的第一行索引 3 取兩列 house info price trad...
使用pandas實現篩選出指定列值所對應的行
在pandas中怎麼樣實現類似mysql查詢語句的功能 select from table where column name some value pandas中獲取資料的有以下幾種方法 假設資料如下 import pandas as pd import numpy as np df pd.dat...