Python Pandas基礎 結構化資料處理

2021-08-28 04:48:15 字數 4697 閱讀 5296

python:pandas基礎:結構化資料處理

目錄:1 series

obj = series([4,7,-5,3])

obj.index

obj.values

obj['one'] = 1
obj[obj > 0]

obj * 2

np.exp(obj)

'a' in obj
data = 

obj = series(data)

obj.name = ' population'

obj.index.name = 'state'

obj.index = ['one','two','three','four'] #通過賦值的方式修改索引

2 dataframe
data = ()	

frame = dataframe(data)

dataframe(data,columns = ['one','two','three'])

frame = dataframe(data,columns = ,index = )

frame.columns

frame['one']

frame.one

frame.ix['1']
frame['new'] = 1   #新增乙個空列,並賦乙個標量值

frame['new'] = np.arange(5.) #新增乙個空列,並賦乙個標量值

series = series([1,2,3],index = ['one','two','three'])

frame['new'] = series

如果設定了dataframe的index和columns屬性,這些資訊會被現顯示出來。

跟series一樣,values屬性也會以二維ndarray的形式返回dataframe中的資料。

如果dataframe各列的資料型別不同,則值陣列的資料型別會選用能夠相容所有列的資料型別。

3 索引物件

1 重新索引

obj = seires(,index = )

obj = obj.reindex(['','',''])

obj = obj.reindex(,fillna = 0)

對於dataframe,reindex可以修改(行)索引、列,或兩個都修改。

frame = frame.reindex(['','','',''])

frame.reindex(columns = '')

frame.reindex(index = ['','','','',],method = 'ffill',columns = '')

frame.ix[['','','',''],'']

2 丟棄指定軸上的項

obj = series(np.arange(5.),index = ['a','b','c','d','e','f'])

new_obj = obj.drop('c')

data.drop('one',axis = 0)

data.drop(['one','two'],axis = 1)

3 索引、選取、過濾
obj = series(np.arange(5.),index = ['a','b','c','d','e','f'])

obj['b':'c']

obj['b':'c'] = 5

data['one']

data[['one','two']]

data[:2] #行切片索引選取

data[data['three'] > 5] #布林型陣列選取行

data < 5

data[data < 5] = 0

data.ix['',['','']]   #先行後列

data.ix[['',''],[1,0,3]] #先行後列

data.ix[[data.three > 5],[:2]]

4 算術運算和資料對齊

1)在算術方法中填充值

df1 + df2

df1.add(df2,fill_value = 0)

df1.reindex(columns = df2.columns,fill_value = 0)

2)dataframe和series之間的運算

5 函式應用和對映

f = lambda x : x.max() - x.min()
format = lambda x : '%.2f' %x
frame['e'].map(format)
6 排序和排名

1)排序

frame.sort_index()

frame.sort_idnex(axis = 1) #根據任意軸上的索引就行排序

frame.sort_index(axis = 1,ascending = false) #資料預設是按公升序排序的,也可設定降序排序。

frame.sort_index(by = 'a')

frame.sort_index(by = ['a','b'])

2)排名

排名時用於破壞平級關係的method選項:

7 帶有重複值的軸索引

描述和匯**計

1 相關係數與協方差

2 唯一值、值計數、成員資格

1)唯一值

uniques = obj.unique()

uniques.sort() # 對結果進行排序

2)值計數
pd.value_counts(obj.values,sort = flase)
3)成員資格

1 濾除缺失資料

data.dropna()

data[data.notnull()]

data.dropna(how = 'all')   #傳入how = 'all'將只丟棄全為na的那些行

data.dropna(axis = 1,how = 'all') #丟棄列

df.dropna(thresh = 3)
2 填充缺失資料

fillna預設返回新物件,但也可以對現有物件進行就地修改。

data = df.fillna(0,inplace = true)
df.fillna(method = 'ffill')

df.fillna(method = 'ffill',limit = 2)

data.fillna(data.mean())

data = series(np.random.randn(10),index = [['a','a','a','b','b','b','b','c','c','c'],[1,2,3,1,2,3,1,2,3]])
data['b']   #直接索引

data['b':'c'] # 切片索引

data[:,2] # 內層中選取

data.unstack()

data.unstack().stack()

frame.index.name = ['key1','key2']

frame.columns.names = ['state,'color']

1 重排分級順序
frame.swaplevel('key1','key2')
frame.sortlevel(1)

frame.swaplevel(0,1).sortlevel(0)

2 根據級別匯**計

3 使用dataframe的列

frame2 = frame.set_index(['c','d'])

frame.set_index(['c','d'],drop = flase)

frame.reset_index()
1 整數索引
serie.iget_value()

frame.irow()

2 面板資料

pandas有乙個panel資料結構,可以看做乙個三維版的dataframe,pandas大部分開發工作都集中在**型資料的操作上,層次化索引頁使得多數情況下不需要用到n維陣列。

stacked = pdata.ix[:].to_frame()   # panel的資料呈現形式

stacked.to_panel()

python pandas基礎使用大全

一 生成資料表 匯入pandas庫 import numpy as np import pandas as pd讀取csv或者excel df pd.read csv a.csv df pd.read csv a.csv header 1 df pd.read csv a.csv 字典轉成dataf...

Python Pandas庫入門及基礎操作

pandas提供高效能易用資料型別和分析工具,可以用import pandas as pd引入,通常簡寫為pd。pandas主要提供兩個資料型別 series 一維 和dataframe 多維 基於上述資料型別提供各類操作 基本操作 運算操作 特徵類操作 關聯類操作等。series型別由一組資料及與...

Python pandas,建立Series型別

numpy只能處理數值型別的資料。pandas除了可以處理數值型別外,還可以處理非數值型別的資料 例如 字串 時間序列等 pandas常用的資料型別 series 一維,帶標籤的陣列,對應資料庫中的一條記錄 dataframe 二維,series容器,對應資料庫中的表 demo.py series的...