使用python進行數據分析工作的第一步是獲取數據源,數據源來可能來自于excel、txt、csv文件、mysql數據庫。
分別看看這些數據源怎么導入到python中。
1. Excel 數據源導入python
首先導入pandas 模塊
import pandas as pd
excel 導入格式為:
pd.read_excel( 路徑,sheet_name=’’ ,header=0,name=’’, dtype= )
參數說明如下:
sheet_name為字符串、數字或者列表形式。0 表示 讀取第一個sheet,得到一個DataFrame
1 表示 讀取第二個sheet,得到一個DataFrame
‘sheet1’ 表示 讀取名字為sheet1的sheet ,得到一個DataFrame
[0,1,’sheet1’] 表示讀取 第一個、第二個、‘sheet1’ 名字的 sheet,得到一個字典,字典里面有3個DataFrame。
sheet_name參數可以省略,默認讀取第一個sheet。
header 參數表示數據中是否包含表頭0表示數據源中包含表頭
None 表示數據源中不包含表頭
names 參數表示表的列名稱,格式為列表(list)得到的DataFrame的列名稱是names的值.
如果header的值是None,但是names沒有值,得到的DataFrame的列名稱是0,1,2這樣的值.
dtype 列數據格式的設置,采用字典形式進行配置比如:{‘a’: np.float64, ‘b’: np.int32}
read_excel 還有其他的參數,但使用比較少,有興趣可以看點下面的鏈接看。pandas.read_excel - pandas 1.0.3 documentation?pandas.pydata.org
示例代碼:
df=pd.read_excel('C:\\Users\\Administrator\\Desktop\\好友關系.xlsx',sheet_name='Sheet1')
df2=pd.read_excel('C:\\Users\\Administrator\\Desktop\\好友關系.xlsx',sheet_name=[0,1])
df3=pd.read_excel('C:\\Users\\Administrator\\Desktop\\好友關系.xlsx',sheet_name=0)
df4=pd.read_excel('C:\\Users\\Administrator\\Desktop\\好友關系.xlsx',sheet_name='Sheet1',header=0,names=[1,2],dtype={1:str,2:np.int})
得到的結果,在變量瀏覽框里面看到的是這樣的:
可以看到,df2 是一個字典(dict),字典里面有兩個數據框(DataFrame). df4的列名稱變成了1,2.
2. csv數據源導入python
excel 導入格式為:
df=pd.read_csv(路徑,sep=',',header=0 ,names=,dtype=,encoding=)
一般情況下,df=pd.read_csv(路徑) 就可以了。
參數解讀:
sep參數表示數據分隔的字符,默認是’,’,一般csv分隔符也是逗號。
header 同pd.read_excel
names 同pd.read_excel
dtype 同pd.read_excel
encoding 表示csv的編碼方式,有時候讀取報錯是因為編碼問題,需要進行特別的配置。
read_csv 還有其他的參數,但使用比較少,有興趣可以看點下面的鏈接看。
3. mysql數據源導入python
需要 pymysql 模塊,可以通過cmd 使用pip install pymysql 進行模塊安裝。
以下寫了一個連接mysql 的通用方法,使用的時候調用方法進行啦。
def get_data(host='',port='',user='',password='',db='',cahrset='',sql ,file_path,file_name,column=['姓名','身份證號碼','電話號碼','所屬企業']):
#建立連接
conn=pymysql.Connect(host=host##mysql數據庫的地址
, port=port##端口
, user=user#用戶名
, passwd=password#密碼
, db=db ##訪問哪個數據庫
, charset='utf8'
)
#建立游標
cursor = conn.cursor()
##執行sql
cursor.execute(sql)
#獲取數據
sql_repayinfo = cursor.fetchall()
##數據寫入dataframe
df_report=pd.DataFrame(list(sql_repayinfo),columns=column)
conn.close()
###儲存數據到本地電腦
file_paths =file_path+' _%s.xlsx' %(file_name) ##儲存路徑
writer_obj_bc = pd.ExcelWriter(file_paths) ##建立數據寫入目標
df_report.to_excel(writer_obj_bc, 'data') ##寫入數據,sheetname的名字為data
writer_obj_bc.save()#保存數據
return df_report ##返回數據
4. txt數據源導入python
有兩種方法可以選擇。
pd.read_table()方法:此方法適合格式統一的txt文件,比如用逗號分隔的數據文件,直接生成DataFrame.
open()方法:此方式格式統一、格式不統一的txt文件均可以,可以實現按行讀取數據,并進行數據處理,比如去掉特殊字符串、進行文本處理等。
pd.read_table()方法:
####代碼格式
df=pd.read_table('路徑',sep='分隔符')
pd.read_table() 有其他的參數,官方參考文檔地址。
open()方法:
以下代碼實現讀取txt文件,按行讀取,并存入dt變量中,
with open('路徑','r',encoding='utf-8') as f:
dt=[]
for line in f:
dt+=[line.strip().split(',