python資料清洗學習筆記 檔案讀寫

2021-10-23 02:10:01 字數 4207 閱讀 2201

前期準備:

#匯入os模組

import os

#獲得當前路徑位址

os.getcwd(

)# 更改檔案路勁

os.chdir(

'f:\python\資料清洗\**和資料'

)#設定最大顯示列數

pd.set_option(

'display.max_columns',20

)#設定最大顯示行數

pd.set_option(

'display.max_rows',50

)

• pandas內建了10多種資料來源讀取函式,常見的就是csv和excel

• 使用read_csv方法讀取,結果為dataframe格式

• 在讀取csv檔案時,檔名稱盡量是英文

• 引數較多,可以自行控制,但很多時候用預設引數

• 讀取csv時,注意編碼,常用編碼為utf-8、gbk 、gbk2312和gb18030等

• 使用to_csv方法快速儲存

df = pd.read_csv(『******x.csv』,encoding= 『gbk』)

df = pd.read_csv(『***xx.csv』,encoding ='gbk』,nrows=10)

df.to_csv(『df.csv』,index=false)

#讀取csv檔案資訊

a = pd.read_csv(

'***x.csv'

, encoding=

'utf-8'

)#檢視表資訊

a.info(

)#數值類常用統計值

a.describe(

)#檢視表前10行資訊

a.head(10)

#檢視各列非空值數量

a.count(

)#僅取讀檔案的前100行

b = pd.read_csv(

'***x.csv'

,nrows=

100)

#儲存資料

b.to_csv(

'b1.csv'

,encoding=

'utf-8'

,index=

false

)

•使用read_excel讀取,讀取後的結果為dataframe格式

• 讀取excel檔案和csv檔案引數大致一樣, 但要考慮工作表sheet頁

• 引數較多,可以自行控制,但很多時候用預設引數

• 讀取excel時,注意編碼,常用編碼為utf-8、gbk 、gbk2312和gb18030等

• 使用to_excel快速儲存為xlsx格式

df =pd.read_excel(『meal_order_info.xlsx』, sheet_name = 『sheet1』)

df = pd.read_excel(『meal_order_info.xlsx』,encoding = 『utf-8』,nrows=10)

df.to_excel(『a1.xlsx』, sheet_name=『sheet1』,index= false,encoding='utf-8)

#讀取excel需要註明具體哪乙個工作簿,否則就是第乙個工作簿

df1 = pd.read_excel(

'***x.xlsx'

,encoding =

'utf-8'

,sheet_name =

'detail1'

)# sheet_name可以為數字,代表第幾個工作簿

df1 = pd.read_excel(

'***x.xlsx'

,encoding =

'utf-8'

,sheet_name=0)

#儲存資料

df1.to_excel(

'a1.xlsx'

,sheet_name=

'one'

,index=

false

)

• 使用sqlalchemy建立連線

• 通過pandas中read_sql 函式讀入, 讀取完以後是dataframe格式

• 通過dataframe的to_sql方法儲存

sql = 『select * from ******』 #選擇資料庫中表名稱

df1 = pd.read_sql(sql,conn)

df.to_sql(『testdf』,con = conn, index=false,if_exists= 『replace』)

#匯入相關資料庫

import pymysql

from sqlalchemy import create_engine

資料庫建立連線引數:

conn=create_engine(『mysql+pymysql://user:passward@ip:3306/test01』)

• root: 使用者名稱

• passward: 密碼

• ip : 伺服器ip,本地電腦用localhost

• 3306: 埠號

• test01 : 資料庫名稱

#建立連線

conn = create_engine(

'mysql+pymysql://root:******@localhost:3306/******'

)#取讀資料

#選擇資料庫中的表名

sql =

'select * from ******'

df2 = pd.read_sql(sql,conn)

#df2是乙個dataframe格式

## 函式

defquery

(table)

: host =

'localhost'

user =

'root'

password =

'****'

#這兒的*是指你的資料庫連線密碼

database =

'******x'

#x為資料庫的名稱

port =

3306

conn =create_engine(

"mysql+pymysql://{}:{}@{}:{}/{}"

.format

(user, password,host, port, database)

)#sql語句,可以定製,實現靈活查詢

sql =

'select * from '

+ table #選擇資料庫中表名稱

# 使用pandas的read_sql函式,可以直接將資料存放在dataframe中

results =pd.read_sql(sql,conn)

return results

## 函式

defquery

(database,table):

host =

'localhost'

user =

'root'

password =

'******'

port =

3306

conn =create_engine(

"mysql+pymysql://{}:{}@{}:{}/{}"

.format

(user, password,host, port, database)

)#sql語句,可以定製,實現靈活查詢

sql =

'select * from '

+ table #選擇資料庫中表名稱

#使用pandas的read_sql函式,可以直接將資料存放在dataframe中

results =pd.read_sql(sql,conn)

return results

• name是表名

• con是連線

• if_exists:表如果存在怎麼處理。

• index=false:不插入索引index

python是否能將資料寫入資料庫,很多時候取決於資料庫的許可權

記錄自:python資料清洗實戰–peter老師

python清洗文字 用python清洗文字檔案

文章目錄txt清洗1 字串操作 2 txt的建立和讀取 3 檔案讀取以及實現 txt清洗 1 字串操作 對此,首先需要熟悉一些python基本的字串操作。在python中,字串用引號 或 來表示,並可通過類似陣列的方式進行索引,對此我們先建立乙個字串 test txt檔案csdn.com清csd.c...

python資料清洗學習筆記 資料轉換

pandas中使用to datetime 方法將文字格式轉換為日期格式 dataframe資料型別如果為datetime64,可以使用dt方法取出年月日等 對於時間差資料,可以使用timedelta函式將其轉換為指定時間單位的數值 時間差資料,可以使用dt方法訪問其常用屬性 sec cars boa...

Python 資料預處理與清洗(學習筆記)

import numpy as np import pandas as pd from matplotlib import pyplot as plt data pd.read csv file.csv encoding gbk data.info 檢視資料型別1 堆疊資料df1 data.iloc...