Pandas知識點總結

2021-10-24 20:30:14 字數 3975 閱讀 8770

import pandas as pd

s = pd.series([1

,2,3

,4,5

,6,np.nan]

)# np.nan相當於什麼都沒有

dates = pd.date_range(

'20200101'

, periods=6)

# 初始化六個日期

df=pd.dataframe(np.random.randn(6,

4), index=dates, columns=

['a'

,'b'

,'c'

,'d'])

# index是行序號; columns是列序號

pd.dataframe(np.arange(12)

.reshape((3

,4))

)# 不指定序號的情況下, 行序號和列序號各自從0開始分配

df2=pd.dataframe(

)# 從字典初始化dataframe, 不足位自動填充

函式

說明df.dtypes

型別df.index

所有行序號

df.columns

所有列序號

df.values

所有值df.t

轉置df.describe()

統計資料

df.sort_index(axis=0, asending=false, by=『a』)

ascending=true:正序; ascending=false:倒序; by='name』通過行名或列名排序

df = pd.dataframe(np.arange(24)

.reshape((6

,4))

,index=dates,columns=

['a'

,'b'

,'c'

,'d'])

print

(df.a, df[

'a']

)# 都是輸出column'a'

print

(df[0:

1], df[

'20200101'

:'20200101'])

# 功能相同, 輸出行

print

(df.loc[

'20200101'])

# 取出行, 但不能取列

print

(df.loc[:,

['a'

,'b']]

)# 保留所有的行,取出特定的列

print

(df.loc[

'20200106',[

'a',

'b']])

# 取出特定的行和列

print

(df.iloc[3:

5,2]

)# 輸出4-5行, 第3列

print

(df.iloc[[1

,3,5

],1:

3])# 輸出不連續的按index索引的資料

print

(df[df.a>8]

)# 篩選column a大於8的資料

df[df.a>12]

=0# 將column a中大於12的資料修改為0,修改範圍包括非column a的列

df.a[df.a>12]

=0# 將column a中大於12的數修改為0,只修改column a, 不修改關聯列

df['f'

]= np.nan # 新增列

print

(df.dropna(axis=

0, how=

'any'))

# how= 刪除空白資料, any:僅一項為空白刪除; all:所有項都為空白刪除

print

(df.fillna(value=0)

)# 用0填補空白資料

print

(df.isnull())

# 是否有缺失資料, 輸出**

print

(np.

any(df.isnull())

==true

)# 只要有一項資料丟失就顯示true

# read_+file format與to_+file format一一對應

data = pd.read_csv(

'student.csv'

)# 讀取csv檔案

data.to_pickle(

'students.pickle'

)# 儲存為pickle檔案

# concatenating

df1 = pd.dataframe(np.ones((3

,4))

*0, columns=

['a'

,'b'

,'c'

,'d'])

df2 = pd.dataframe(np.ones((3

,4))

*1, columns=

['a'

,'b'

,'c'

,'d'])

df3 = pd.dataframe(np.ones((3

,4))

*2, columns=

['a'

,'b'

,'c'

,'d'])

res = pd.concat(

[df1, df2, df3]

, axis =

0, ignore_index=

true

)# axis=0:跨行合併; axis=1:跨列合併;

# ignore_index=true:忽略原有的index重新排序, ignore_index=false:仍為原值

res = pd.concat(

[df1,df2]

,join=

'inner'

,ignore_index=

true

)# join='inner'就是連線共有的列, join='outer'就是全連線, 模擬資料庫

[df1, df2]

,ignore_index=

true

)# 可合併多列

# merge

res = pd.merge(left, right, on=

'key'

)# 根據column key進行合併

pd.merge(left,right,on=

['key1'

,'key2'])

# 根據column key1, key2進行合併

pd.merge(left,right,on=

['key1'

,'key2'

],how=

'outer'

)# how=['inner', 'outer', 'left', 'right'] ,left,right始終指前後兩個合併的dataframe, 與dataframe的名字無關

# indicator=true:開啟合併顯示; indicator=false:預設, 關閉合併顯示

left = pd.dataframe(

, index=

['k0'

,'k1'

,'k2'])

right = pd.dataframe(

, index=

['k0'

,'k2'

,'k3'])

res = pd.merge(left,right,left_index=

true

,right_index=

true

,suffixes=

['_a1'

,'_a2'])

# 以left和right的index合併, 相同的index根據suffixes重新命名

pandas知識點總結

pandas學習筆記 1.一維資料結構 series 物件 b pd.series data 1,2,3 利用陣列建立series物件 b 0 1 1 2 2 3 dtype int64 type b pandas.core.series.series a 利用字典dict建立series物件 c ...

Pandas常用知識點總結

pandas是python中高效能的資料分析庫。為資料的統計分析帶來了極大的便利。本文以pandas中最常用的資料結構dataframe為主,總結常用知識點,如增刪改查,分組統計等等。df pd.dataframe df.emptydf.drop duplicates df.replace rege...

Pandas知識點梳理(一)

一 pandas簡介 pandas 是基於numpy 的乙個資料分析包,該工具是為了解決資料分析任務而建立的。pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法。pandas的資料結構 series及da...