Python系列(3)——Pandas數據庫讀取數據


Pandas主要先讀取表格類型的數據,然后進行分析。

 

import pandas as pd
# 由於是用pandas模塊操作數據,因此不用在路徑前加open,否則就是python直接打開文件,可能還會打不開出錯
# file_path_excel = open('E:\\學習\\Python\\Pandas入及學習-據分析\\bank.xls')
# 文件所在的位置,文件路\\,或是反方向單杠/, 或在文件路前加一r即可直接使用原路\即:r'\'
# 'E:\\學習\\bank.csv'  'E:/學習/bank.csv'  r'E:\學習\bank.csv' 都是正確的

 

1.讀取純文本文件  --使用pandas.read_csv
1.1 讀取csv,使用默認的標題行、逗號分隔符--有時csv文本中的數據編碼不兼容,打開時出錯,read_csv(..,encoding=換一種更通用更高級的編碼如gbkgb18030等即可)

1 file_path_csv = 'E:\\學習\\Python\\Pandas模塊的導入及學習-數據分析\\bank.csv'  # 文件路徑為\\或/或r'\'都可
2 bank_csv = pd.read_csv(file_path_csv)  # 使用pandas.read_csv讀取文件
3 print(bank_csv.head())   # 查看前幾行數據,默認顯示前5行數據
4 print(bank_csv.shape)   # 查看數據的形狀,返回(行數,列數)
5 print(bank_csv.dtypes)  # 查看每列的數據類型
View Code

1.2 讀取txt文件,自己制定分隔符

1 file_path_txt = 'E:\\學習\\Python\\Pandas模塊的導入及學習-數據分析\\bank.txt'
2 bank_txt = pd.read_csv(file_path_txt, sep=' ', header=None, names=['name', 'password', 'balance'])
3 # sep=' '空格為自己設定的分隔符,,默認是','號;header=None 如果不將數據集的第一行作為表頭,需要設置header=None,
4 # header指定行數用來作為列名,數據開始行數,如果需要第一行做表頭 header=0 即可;names后面是自己加入指定的標題
5 # bank_txt = pd.read_csv(file_path_txt, sep=' ', header=0)
6 print(bank_txt)
View Code

 2.讀取excel文件--使用pandas.read_excel

1 bank_excel = pd.read_excel('E:/學習/Python/Pandas模塊的導入及學習-數據分析/bank.xls', sheet_name='user')
2 print(bank_excel)
View Code

 

2.1 讀取同一文件下的多個sheet數據--使用pandas.ExcelFile('文件名')

1 excel_reader = pd.ExcelFile(r'C:\Users\Administrator\Desktop\test.xls')  # 指定文件
2 """
3 sheet_names = excel_reader.sheet_names   # 讀取文件的所有表單名,得到列表
4 # 讀取表單的內容,i是表單名的索引,等價於pd.read_excel('文件', sheet_name=sheet_names[i])
5 df_data = excel_reader.parse(sheet_name=sheet_names[i])
6 """
7 df1 = excel_reader.parse(sheet_name='1')  # 讀取表單內容
8 df2 = excel_reader.parse(sheet_name='2')
View Code

2.2 對excel的一些簡單操作

 1 print(bank_excel.shape)  # 讀取行列
 2 n_rows = bank_excel.shape[0]
 3 print(n_rows)  # 讀取最大行
 4 n_columns = bank_excel.columns.size
 5 print(n_columns)  # 讀取最大列
 6 print(bank_excel.iloc[0, 1])  # 讀取指定行列內容   列和行的序號都從0開始,且iloc索引不含標題行
 7 # iloc與loc的區別在於,iloc[行號,列號]而不是loc[行名,列名]
 8 
 9 for i in range(n_rows):
10     for j in range(n_columns):
11         print(bank_excel.iloc[i, j])   # 遍歷表格
12 
13 print(bank_excel.iloc[0].values)    # iloc索引 返回列表除標題外的第一行數據
14 print(bank_excel.index.values)  # 獲取行號並打印輸出
15 print(bank_excel.columns.values)  # 獲取列名並打印輸出
16 
17 r = bank_excel.loc[bank_excel['name'] == 'tom']   # 輸出篩選的數據內容
18 e = bank_excel.loc[bank_excel['balance'] >= 1000] 
19 s = bank_excel.loc[bank_excel['name'].str.contains('o')]   # 輸出含有字符o的數據
20 # 組合條件用&符號合並,每個條件判斷都得帶括號
21 m = bank_excel.loc[(bank_excel['balance'] >= 1000) & (bank_excel['name'] == 'tom')] 
22 u = bank_excel.loc[:, ['name', 'balance']]   # 輸出指定列的所有內容
23 l = bank_excel.loc[0:2, ['name', 'balance']]   # 輸出指定列的0-2行數據內容
24 t = bank_excel.loc[0:2, ]   # 輸出指定行0-2行數據
25 print(r)
26 print(s)
View Code

3.讀取MySQL數據庫

1 import pymysql
2 connect_mysql = pymysql.connect(host='S12345678', user='sa', password='*******',database='test1', charset='utf8')
3 # pymysql.connect(host=“你的數據庫地址--一般是計算機名”, user=“用戶名”,password=“密碼”,database=“數據庫名”,charset=“utf8”)
4 mysql_page = pd.read_sql('select * from [test1].[dbo].[course]', con=connect_mysql)
5 print(mysql_page)
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM