1、pandas數據的讀取
pandas需要先讀取表格類型的數據,然后進行分析
數據說明 | 說明 | pandas讀取方法 |
csv、tsv、txt | 用逗號分割、tab分割的純文本文件 | pd.read_csv |
excel | 微軟xls或者xlsx文件 | pd.read_excel |
mysql | 關系向數據庫表 | pd.read_sql |
#本代碼示例: import pandas as pd #導入包 #1讀取csv,使用默認的標題行、逗號分割 fpath = “要打開文件的路徑” ratings = pd.read_csv(fpath) #使用pd.read_csv讀取數據 ratings.head() #查看前幾行(默認5行) ratings.shape #查看數據的形狀,返回(行數、列數) ratings.columns # 查看列名列表 ratings.index #查看索引列 ratings.dtypes #查看每一列的數據類型 #1.2讀取txt文件,自己制定分隔符、列名 fpath = “文件的路徑” pvuv = pd.read_csv( fpath, sep = “\t”, #l列的分隔符 header = None, names = ['pdate','pv','uv'] ) print(pvuv) #讀取excel文件 fpath = “文件的路徑” pvuv = pd.read_excel(fpath) print(pvuv) #讀取Mysql數據庫 import pmysql conn = pmysql.connect( host = '127.0.0.1', user = 'root', password = '123456', database = 'test', charest = 'utf8' ) mysql_page = pd.read_sql("select * from 表名",con=conn) print(mysql_page)
2、pandas數據結構(DataFrame & Series)
DataFrame:二維數據,整個表格,多行多列
df.columns 查詢列
df.index 查詢行
Series:一維數據,一行或者一列
#1、 Series #2、DataFrame #3、從DAtaFrame中查詢出Series import pandas as pd import numpy as np #series是一種類似於一維數組的對象,它由一組數據(不同數據類型)以及一組與之相關的數#據標簽(即索引)組成。 #1.1僅有數據列表即可產生最簡單的series s1 = pd.Series([1,'a',5.2,6]) # print(s1) #左側為索引,右側為數據 print(s1.index) #獲取索引 結果:RangeIndex(start=0, stop=4, step=1) print(s1.values) #獲取數據 結果:[1 'a' 5.2 6] #1.2 創建一個具有標簽索引的Series s2 = pd.Series([1,'a',5.2,6],index = ['d','b','a','c']) print(s2) print(s2.index) #Index(['d', 'b', 'a', 'c'], dtype='object') #1.3 使用python字典創建Series sdata = {'ohio':3500,'Texas':72000,'Oregs':16000,'Ggrqg':5000} s3 = pd.Series(sdata) print(s3) #1.4 根據標簽索引查詢數據(類似python的字典dict) print(s2['a'])#5.2 print(type(s2['a']))#<class 'float'> print(s2[['b','a']]) #2 DataFrame # DataFrame是一個表格型的數據結構 # 每一列可以是不同的值類型(數值、字符串、布爾值) # 既有行索引index,也有列索引columns # 可以被看由Series組成的字典 #2.1根據多個字典序列創建dataframe data = { 'state':['ofjg','sdfg','werw','wrgwer','rgwg'], 'year':[2000,3000,5000,6000,9000], 'pop':[1.5,1.7,1.6,5.3,3.5] } df = pd.DataFrame(data) print(df) #3.從DataFrame中查詢Series # 如果只查詢一列,返回的是pd.Series # 如果查詢多行、多列,返回的是pd.DataFrame # 3.1 查詢一列 結果是一個pd.Series print(df['year']) print(type(df['year']))#<class 'pandas.core.series.Series'> # 3.2 查詢多列,結果是一個pd.DataFrame print(df[['year','pop']]) print(type(df[['year','pop']]))#<class 'pandas.core.frame.DataFrame'> # 3.3 查詢一行,結果是一個pd.Series print(df.loc[1]) print(type(df.loc[1]))#<class 'pandas.core.series.Series'> # 3.4 查詢多行,結果是一個pd.DataFrame print(df.loc[1:3]) print(type(df.loc[1:3]))#<class 'pandas.core.frame.DataFrame'>