Pandas基礎學習筆記

2021-10-03 05:04:05 字數 4732 閱讀 6148

python data analysis library 或 pandas 是基於numpy 的一種工具,該工具是為了解決資料分析任務而建立的。pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法

import pandas as pd

import numpy as np

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

4), index=date, columns=

['a'

,'b'

,'c'

,'d'])

# 運算元據

s1 = pd.series([1

,2,3

, np.nan,4]

)# 一維陣列

date = pd.date_range(

'20200224'

, periods=7)

# 生成時間序列

# 1、pandas基本介紹

print

('資料型別:'

, df.dtypes)

print

('行:'

, df.index)

print

('列:'

, df.columns)

print

('值:'

, df.values)

print

('數值型別的資料展示:'

, df.describe())

print

('矩陣反向:'

, df.t)

print

('列排序:'

, df.sort_index(axis=

1, ascending=

false))

print

('某列值排序:'

, df.sort_index(by=

'd')

)# 2、pandas選取資料

print

(df)

# 通過序列選取資料

print

('序列a的資料:'

, df[

'a']

)print

(df.a)

print

(df[

'20200224'

:'20200226'])

# 通過標籤選擇:

print

(df.loc[

'20200224'])

# 通過位置選擇:

print

(df.iloc[1,

1])# 是與否選擇

print

(df[df.a >

0.1]

)# 3、pandas設定值並處理空值

df.iloc[2,

2]= np.nan

df.loc[

'2020-02-24'

,'b'

]= np.nan

df.a[df.a >0]

= np.nan

df['f'

]= np.nan # 新增一列nan

print

(df)

# axis[0, 1] 行列, how['any', 'all'] 任意乙個,所有

# inplace['false', 'true'] 建立新物件,並對資料進行修改/原基礎上修改資料,不建立物件

print

(df.dropna(axis=

1, how=

'all'

, inplace=

true))

# 將每列都為空的值進行刪除

df['a'

].fillna(value=

0, inplace=

true

)# 將a列的空值填充為0

print

(df.isnull())

# 判斷所有數值是否為空

print

(np.

any(df.isnull())

==true

)# 只要有空值就返回true

print

(df)

# 4、pandas匯入匯出資料

path =

""df = pd.read_excel(path)

data = df.to_excel("")

# read_csv to_csv

# read_excel to_excel

# read_sql to_sql

# read_json to_json

# read_pickle to_pickle

# read_html to_html

# 5、pandas合併資料

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

,4))

, columns=

['a'

,'b'

,'c'

,'d'])

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

,4))

, columns=

['a'

,'b'

,'c'

,'e'])

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

,4))

*2, columns=

['a'

,'b'

,'c'

,'d'])

print

(df1)

print

(df2)

print

(df3)

# 列頭相同,進行上下合併 ignore_index: 忽略之前的索引,重新排序

print

(pd.concat(

[df1, df3]

, axis=

0, ignore_index=

true))

# 列頭不同

# join['outer', 'inner'] 預設outer

print

(pd.concat(

[df1, df2]

, join=

'inner'

, ignore_index=

true))

# join_axes=[df1.index]) 依據df1的索引

print

(pd.concat(

[df1, df2]

, axis=

1, join_axes=

[df1.index]))

print

[df2, df3]

, ignore_index=

true))

# 6、merge合併

df1 = pd.dataframe(

)df2 = pd.dataframe(

)print

(pd.merge(df1, df2, on=

'key'))

# 共用乙個key

df3 = pd.dataframe(

)df4 = pd.dataframe(

)rs = pd.merge(df3, df4, on=

['k1'

,'k2'])

print

(rs)

# how['inner', 'left', 'right', 'outer'] 預設inner

rs2 = pd.merge(df3, df4, on=

['k1'

,'k2'

], how=

'outer'

)print

(rs2)

# indicator 將合成的依據資料情況顯示,並支援重新命名

rs3 = pd.merge(df3, df4, on=

['k1'

,'k2'

], how=

'outer'

, indicator=

'合併方式'

)print

(rs3)

df5 = pd.dataframe(

, index=

['k0'

,'k1'

,'k2'

,'k3'])

df6 = pd.dataframe(

, index=

['k0'

,'k1'

,'k2'

,'k4'])

# 依據index 合成

rs4 = pd.merge(df5, df6, left_index=

true

, right_index=

true

, how=

'outer'

)print

(rs4)

df7 = pd.dataframe(

)df8 = pd.dataframe(

)# suffixes: 分類區分同一列名

rs5 = pd.merge(df7, df8, on=

'name'

, suffixes=

['_jack'

,'_tom'

], how=

'inner'

)print

(rs5)

Pandas學習筆記 02 pandas基礎

第二章 pandas基礎 目錄2 基本資料結構 3 常用基本函式 4 視窗物件 read csvread tableread excel 公共引數 header none表示第一行不作為列名 index col表示把某一列或幾列作為索引 usecols表示讀取的列,預設讀取所有的列 parse da...

pandas基礎學習筆記二

二 多級索引 三 索引設定 3.set index和reset index 4.rename axis和rename 四 常用索引型函式 五 重複元素處理 六 抽樣函式 第2章 索引.ipynb 寫在前面的,按照教程中的內容都在電腦上敲了一遍 但還是感覺雲裡霧裡的。知識點很多,也有很多經驗的傳授,回...

pandas基礎學習筆記三

二 groupby函式 三 聚合 過濾和變換 第3章 分組.經過groupby後會生成乙個groupby物件,該物件本身不會返回任何東西,只有當相應的方法被呼叫才會起作用 grouped single df.groupby school 根據某一列分組 grouped single.get grou...