pandas操作基礎

2021-10-23 12:25:06 字數 4193 閱讀 4701

documentation:

中文文件:

import pandas as pd

series是帶標籤的一維陣列,可儲存整數、浮點數、字串、python 物件等型別的資料。軸標籤統稱為索引。呼叫pd.series函式即可建立 series。

>>> s = pd.series(data, index=index)
dataframe是由多種型別的列構成的二維標籤資料結構,類似於 excel 、sql 表,或 series 物件構成的字典。

>>> pd.dataframe(d, index=['d', 'b', 'a'], columns=['two', 'three'])
dataframe.drop(labels=none,axis=0, index=none, columns=none, inplace=false)

引數說明:

labels 就是要刪除的行列的名字,用列表給定

axis 預設為0,指刪除行,因此刪除columns時要指定axis=1;

index 直接指定要刪除的行

columns 直接指定要刪除的列

inplace=false,預設該刪除操作不改變原資料,而是返回乙個執行刪除操作後的新dataframe;

inplace=true,則會直接在原資料上進行刪除操作,刪除後無法返回。

因此,刪除行列有兩種方式:

1)labels=none,axis=0 的組合

2)index或columns直接指定要刪除的行或列

#刪除列名為a的列,如果inplace不寫預設為false,並沒有在原資料中刪除

test_1.drop('a', axis=1, inplace=true)

test_1.head(3)

#刪除列名為a的列

del test_1['a']

#刪除第0,2,4列 ,axis=0表示行,1表示列

test_1.drop(df.columns[[0, 1, 3]], axis=1)

#隱藏某列,如'age','ticket',只觀察其他幾個列元素

test_1.drop(['age','ticket'],axis=1).head(3)

#這樣寫不可以,顯示出來的是全部

test_1.drop(['age','ticket'],axis=1)

test_1.head(3)

in [307]: data

out[307]:

a b c d

0 bar one z 1.0

1 bar two y 2.0

2 foo one x 3.0

3 foo two w 4.0

in [308]: indexed1 = data.set_index('c')

in [309]: indexed1

out[309]:

a b d

c

z bar one 1.0

y bar two 2.0

x foo one 3.0

w foo two 4.0

in [310]: indexed2 = data.set_index(['a', 'b'])

in [311]: indexed2

out[311]:

c d

a b

bar one z 1.0

two y 2.0

foo one x 3.0

two w 4.0

dataframe.reset_index(level=none, drop=false, inplace=false, col_level=0, col_fill=」)

作用:還原索引,重新變為預設的整型索引

引數說明:

level:數值型別可以為:int、str、tuple或list,預設無,僅從索引中刪除給定級別。預設情況下移除所有級別。控制了具體要還原的那個等級的索引 。

drop:當指定drop=false時,則索引列會被還原為普通列;否則,經設定後的新索引值被會丟棄。預設為false。

inplace:輸入布林值,表示當前操作是否對原資料生效,預設為false。

col_level:數值型別為int或str,預設值為0,如果列有多個級別,則確定將標籤插入到哪個級別。預設情況下,它將插入到第一級。

col_fill物件,預設『』,如果列有多個級別,則確定其他級別的命名方式。如果沒有,則重複索引名。

注:不僅僅恢復set_index的索引,對於其他篩選也有作用,比如midage = df[(df["age"]>10)& (df["age"]<50)]

in [318]: data

out[318]:

c d

a b

bar one z 1.0

two y 2.0

foo one x 3.0

two w 4.0

in [319]: data.reset_index()

out[319]:

a b c d

0 bar one z 1.0

1 bar two y 2.0

2 foo one x 3.0

3 foo two w 4.0

#不僅僅恢復set_index的索引,對於其他篩選也有作用,比如

midage = df[(df["age"]>10)& (df["age"]<50)]

midage = midage.reset_index(drop=true)

loc函式:通過行索引 "index" 中的具體值來取行資料(如取"index"為"a"的行) df.loc[ [行號/名], [列號/名] ]

iloc函式:通過行號來取行資料(如取第二行的資料)  df.iloc[ [行號], [列號] ]

#將midage的資料中第100,105,108行的"pclass","name"和"***"的資料顯示出來

midage.loc[[100,105,108],['pclass','name','***']]

midage.iloc[[100,105,108],[2,3,4]]

dataframe.sort_index(axis=0, level=none, ascending=true, inplace=false, kind=』quicksort』, na_position=』last』, sort_remaining=true, by=none)

引數說明:

axis:索引,axis=1按列排序,axis=0按行排序

level:如果不是,則對指定索引級別的值進行排序

ascending:公升序與降序排序,預設公升序

inplace:如果為true,則就地執行操作

kind:,預設為「快速排序」。選擇排序演算法。有關更多資訊,另請參見ndarray.np.sort。 mergesort是唯一穩定的演算法。對於dataframe,此選項僅在對單個列或標籤進行排序時適用。

na_position:[,預設為'last']首先將nan放在開頭,最後將nan放在結尾。未針對multiindex實施。

sort_remaining:如果為true且按級別和索引排序是多層,則按指定級別排序後也按其他級別(按順序)排序

dataframe.sort_values(by, axis=0, ascending=true, inplace=false, kind='quicksort', na_position='last')

引數說明:

by:指出某個列/行名,對該列/行進行排序

其他引數同上

pandas基礎操作

pandas中最基礎的資料結構叫做dataframe,類似excel中的表結構,包含欄與列的集合,可根據欄與列運算元據,類似r的dataframe。下面來看一些基礎操作,在資料清洗與處理階段,這些操作需熟練掌握。1.建立dataframe import pandas as pd data pd.da...

Pandas 基本介紹和基礎操作

目錄 一 numpy和pandas的不同 二 pandas序列操作 二 pandas序列 import pandas as pd import numpy as np 1.生成乙個簡單的一維陣列 下面的語句可以理解為新建了乙個一維陣列,但是每行都有乙個標號 s pd.series 1,3,6,np....

pandas列相加 Pandas 基礎

git 上pandas學習教程,共有十章 4個板塊 pandas基礎 四類操作 四類資料 例子。原文內容系統的講解了pandas庫的使用方法,編排邏輯易懂,覆蓋面廣且含有相應練習,之前已經學習過pandas,但是感覺應用時有些費力,計畫重新按照學習教程再梳理一遍,爭取10天完成學習,enjoy ti...