資料讀寫
# 讀入mysql資料庫資料
# 匯入第三方模組
import pymysql
# 連線mysql資料庫
conn = pymysql.
connect
(host=
'localhost'
, user=
'root'
, password=
'test'
, database=
'test'
, port=
3306
, charset=
'utf8'
)# 讀取資料
user = pd.
read_sql
('select * from topy'
, conn)
# 關閉連線
conn.
close()
# 資料輸出
user
資料初印象
# 資料讀取
sec_cars = pd.
read_table
(r'c:\users\administrator\desktop\sec_cars.csv'
, sep =
',')
# 預覽資料的前五行
sec_cars.
head()
# 檢視資料的行列數
print
('資料集的行列數:\n'
,sec_cars.shape)
# 檢視資料集每個變數的資料型別
print
('各變數的資料型別:\n'
,sec_cars.dtypes)
# 資料的描述性統計
sec_cars.
describe
()
資料清洗
# 資料讀入
df = pd.
read_excel
(r'c:\users\administrator\desktop\data_test05.xlsx'
)# 缺失觀測的檢測
print
('資料集中是否存在缺失值:\n'
,any
(df.
isnull()
))# 刪除法之記錄刪除
df.dropna()
# 刪除法之變數刪除
df.drop
('age'
, axis =1)
# 替換法之前向替換
df.fillna
(method =
'ffill'
)# 替換法之後向替換
df.fillna
(method =
'bfill'
)# 替換法之常數替換
df.fillna
(value =0)
# 替換法之統計值替換
df.fillna
(value =
)
型別轉換與元素及運算
# 資料讀入
df = pd.
read_excel
(r'c:\users\administrator\desktop\data_test03.xlsx'
)# 將birthday變數轉換為日期型
df.birthday = pd.
to_datetime
(df.birthday, format =
'%y/%m/%d'
)# 將手機號轉換為字串
df.tel = df.tel.
astype
('str'
)# 新增年齡和工齡兩列
df['age'
]= pd.datetime.
today()
.year - df.birthday.dt.year
df['workage'
]= pd.datetime.
today()
.year - df.start_work.dt.year
# 將手機號中間四位隱藏起來
df.tel = df.tel.
(func = lambda x : x.
replace
(x[3:7
],'****'))
# 取出郵箱的網域名稱
df['email_domain'
]= df.email.
(func = lambda x : x.
split
('@')[
1])# 取出人員的專業資訊
df['profession'
]= df.other.str.
findall
('專業:(.*?),'
)# 去除birthday、start_work和other變數
df.drop([
'birthday'
,'start_work'
,'other'
], axis =
1, inplace = true)
資料合併、連線與彙總
# 構造資料集df1和df2
df1 = pd.
dataframe()
df2 = pd.
dataframe()
# 資料集的縱向合併
pd.concat
([df1,df2]
, keys =
['df1'
,'df2'])
# 如果df2資料集中的「姓名變數為name」
df2 = pd.
dataframe()
# 資料集的縱向合併
pd.concat
([df1,df2]
)# 構造資料集
df3 = pd.
dataframe()
df4 = pd.
dataframe()
df5 = pd.
dataframe()
# 三表的資料連線
# 首先df3和df4連線
merge1 = pd.
merge
(left = df3, right = df4, how =
'left'
, left_on=
'id'
, right_on=
'id'
)merge1
# 再將連線結果與df5連線
merge2 = pd.
merge
(left = merge1, right = df5, how =
'left'
)merge2
pandas的基本操作
準備工作 我們需要裝好pandas庫,然後引入它,一般簡寫為pd import pandas as pd1 生成乙個 方法一 pd.dataframe 三個引數,第乙個為填入的值,第二個index為 的行標,第三個columns為 的列標。第二三個引數如果不填則預設從0開始一直排下去。方法一直接使用...
Pandas基本操作
常用技巧 1 讀取檔案 2 初步設定 最大顯示1000行 最大顯示20列 最大精度 3 去重 所有列相同為重複 k1相同為重複,保留最後乙個 預設保留第乙個 4 顯示當前路徑 5 jupyter下畫圖 6 計算運算時間 7 建立新變數 8 刪除乙個變數 9 刪除一行觀測 10 顯示前三行 11 顯示...
pandas基本操作
pd.read csv filename 從csv檔案匯入資料 pd.read excel filename 從excel檔案匯入資料 pd.read sql query,connection object 從sql表 庫匯入資料 pd.read json json string 從json格式的字...