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