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...