Pandas 讀取輸出檔案 + 資料查詢
阿新 • • 發佈:2022-03-06
1)讀取輸出檔案
import pandas as pd # 1)讀取csv df = pd.read_csv(path) df.head() # 檢視前幾行資料 df.shape # 檢視資料的形狀,返回(行數,列數) df.columns # 檢視列名列表 df.index # 檢視索引列 df.dtypes # 檢視每列資料型別 df.to_csv(path) # 2)讀取txt檔案 df = pd.read_txt( file_path, sep='y', header=None, names=['pdate', 'pv', 'uv'] # 指定資料列名 ) # 3)讀取excel檔案 df = pd.read_excel(file_path) df.to_excel(path, sheet_name='Your Sheet Name') # 4)讀取mysql資料表 import pymysql conn = pymysql.connect( host='127.0.0.1', user='root', password='kingshen2', database='learn', charset='utf8' ) result = pd.read_sql('select * from tb_book', con=conn)
2)資料查詢
import pandas as pd # 1)使用單個label值進行查詢資料: df.loc[2] # 預設對為2的索引進行查詢 df.loc['2018-01-03', 'bWendu'] # 查詢單行和單列 label值和列 df.loc['2018-01-03', ['bWendu', 'yWendu']] # 查詢單行和多列 label值和多列 # 2)使用值列表批量查詢: df.loc[['2018-01-01', '2018-01-02', '2018-01-03'], 'bWendu'] # 查詢多行和單列 多個label值和列 df.loc[['2018-01-01', '2018-01-02', '2018-01-03'], ['bWendu', 'yWendu']] # 查詢多行和多列 多個label值和多列 # 3)對傳入資料區間進行範圍查詢,包含開始和結束: df.loc['2018-01-01':'2018-01-03', 'bWendu'] # 行區間查詢 label區間和單列 df.loc['2018-01-01', 'bWendu': 'fengxiang'] # 列區間查詢 單個label和列區間 df.loc['2018-01-01':'2018-01-03', 'bWendu': 'fengxiang'] # 行和列區間查詢 label區間和列區間 # 4)使用條件表示式查詢: df.loc[df['yWendu']<0, :] # 最低溫度小於0度,如果不對label值進行限制,後面為 : 表示全部區間 # 5)複雜查詢 & | !,每個判斷條件都需要帶括號: df.loc[(df['bWendu'] <= 0) & (df['yWendu'] <= 0) & (df['tianqi']=='多雲'), :] # 7)呼叫函式查詢 本質上也是複雜查詢: df.loc[lambda df: (df['bWendu']<0) & (df['yWendu'] <0), :] # 6)自定義函式進行查詢 索引為ymd 可以同時對標籤和列進行限制: def query_my_weather(df): return df.index.str.startswith('2018-01') & df['aqiLevel']==1 df.loc[query_my_weather, :]