1.pandas的基本資料型別
(1)pandas一共包含了兩種資料型別,分別是series和dataframe
series型別就類似於一維陣列物件。 它是由一組資料以及一組與之相關的資料標籤(索引)組成的。
import pandas as pd
# 例項化乙個series物件,引數是乙個陣列。
obj = pd.series([1
,2,3
,4,5
,6])
print
(obj)
輸出結果:
0 11 2
2 33 4
4 55 6
dtype: int64
第一列代表索引值,第二列代表物件本身的值,最後一行是對這個物件裡邊的值進行的說明。
# 單獨獲取值
print
(obj.values)
# 單獨獲取索引
print
(obj.index)
我們也可以自己定義值和索引
import pandas as pd
# series中的第乙個引數指定物件的值,而index引數就是我們重新定義的索引。
obj = pd.series(
['a'
,'b'
,'c'
,'d'
,'e'
], index=[1
,2,3
,4,5
])
obj[1]就可以訪問到索引值為1的物件的值
宣告乙個series型別,也可以採用字典的格式:
data =
obj = pd.series(data)
可以用obj[『a』]訪問series物件值
(2)dataframe 是乙個**型的資料結構,它含有一組有序的列,每列可以是不同值的型別,數值、字串、布林值都可以。dataframe 本身有行索引,也有列索引。
import pandas as pd
data =
frame_data = pd.dataframe(data)
print
(frame_data)
結果:
60 70 80
0 小花 小小 小李
1 小公尺 小象 小麗
2 小明 小件 小張
按列訪問:frame_data[『60』]
按行訪問:iterrows()和itertuples()兩種,比如:
for item in frame_data.iterrows():
print
(item[0]
)
下面這段**中,第乙個引數就是使用了numpy進行乙個6行4列的隨機數生成,index指定了它的行索引,而columns引數指定了列索引
dates = pd.date_range(
"20201012"
, periods=6)
df = pd.dataframe(np.random.rand(6,
4), index=dates, columns=
list
("abcd"))
print
(df)
結果:
a b c d
2020-10-12 0.195159 0.580352 0.618274 0.417355
2020-10-13 0.832104 0.785943 0.248688 0.201587
2020-10-14 0.846704 0.837993 0.686663 0.254340
2020-10-15 0.563294 0.805869 0.371390 0.598472
2020-10-16 0.929190 0.608389 0.514836 0.608248
2020-10-17 0.322886 0.393414 0.883694 0.597489
2.pandas載入外部資料
(1)載入excel檔案
import pandas as pd
r = pd.read_excel(
"../data/data.xlsx"
, sheet_name=
"工作表2"
)print
(r
(2)載入資料庫中檔案
import pandas as pd
import pymysql
conn=pymysql.connect(host=
'192.168.1.57'
, port=
3306
, user=
'admin'
, passwd=
'123456'
, db=
'school'
, use_unicode=
true
, charset=
"utf8"
)sql=
'select * from class'
r=pd.read_sql(sql,con=conn)
print
(r)
3.常用資料清洗方法
(1)刪除重複資料,使用drop_duplicates()方法。(索引不變,若需要索引按順序,則需重置索引)
(2)isnull()方法來獲取到位空的資料,用df.dropna()方法把資料刪除掉。
(3)填充資料方法:
# 向前填充,指的是用缺失值的前乙個值替換
df.fillna(method=
'ffill'
)# 向後填充,指的是用缺失值的後乙個值替換
df.fillna(method=
'bfill'
)# 指定值來進行替換,如果沒有那麼預設為男,這裡也可以寫一些表示式
df.fillna(value=
'男')
(4)檢視異常值:
通常我們會通過檢視資訊info屬性,檢視描述方法describe(),或者是通過獲取標準差std等方式來觀察資料是否存在異常。
(5)具有透視表功能的函式pivot_table()
引數data,指的是你的資料集。引數values,指的是要用來觀察分析的資料值,就是excel中的值字段。
引數index,指的是要行索引的資料值,就是excel中的行欄位。
引數columns,指的是列索引的資料值,就是excel中的列欄位。
引數aggfunc,指的是資料的統計函式,預設為統計平均值,也可以指定為numpy模組中的其他統計函式。
引數fill_value,指的是乙個標量,用來填充缺失值。
引數margins,布林值,是否需要顯示行或列的總計值,預設為false。
引數dropna,布林值,是否刪除整列為缺失的字段,預設為true。
引數margins_name,指定行或列的總計名稱,預設為all。
Python 資料處理學習筆記
2.列表 3 字典 4.集合 固定長度,不可變的物件序列 逗號分隔 tup 4,5,6tup 1 2,3 4 5 tuple轉換函式 tup tuple strings a tup 0 1.元組物件不可更改,但物件內部可以修改 2.元組拆包 tup 1,2,3 4 a,b,c,d tup a,b 1...
簡單大資料處理 學習筆記
試問年輕時誰沒有幾個夢想?大資料處理一直在我計畫之中,只不過人在江湖,身不由己,公司平台上一直沒有接觸這方面的工作,因為初創公司的資料量,最近在思考來創業公司的幾年打拼經歷,感覺收效甚微,技術層次還停留在幾年前的水平,這裡不是怪公司提供的平台不給力,只是後悔期間自己沒有合理的安排學習時間,天天忙碌加...
點雲資料處理學習筆記
三維計算視覺研究內容包括 1 三維匹配 兩幀或者多幀點雲資料之間的匹配,因為雷射掃瞄光束受物體遮擋的原因,不可能通過一次掃瞄完成對整個物體的三維點雲的獲取。因此需要從不同的位置和角度對物體進行掃瞄。三維匹配的目的就是把相鄰掃瞄的點雲資料拼接在一起。三維匹配重點關注匹配演算法,常用的演算法有最近點迭代...