對CSV础拨、excel表格數(shù)據(jù)進行讀取
直接使用pandas進行讀取
read_excel()
常用參數(shù)解析:
io : excel 路徑。
sheet_name:它是指包含DataFrame的工作表的名稱瞬沦。若sheetname=None是返回全表
header : 指定列名行太伊,默認0雇锡,即取第一行
skiprows :省略指定行數(shù)的數(shù)據(jù)
skip_footer : int, 省略從尾部數(shù)的int行數(shù)據(jù)逛钻,默認不忽略
index_col : 指定第n列為索引列,也可以使用u”strings”
names :指定列的名字锰提。
import pandas as pd
df1 = pd.read_excel('學員管理.xlsx')
df2 = pd.read_csv('學員管理.csv')
所得到的數(shù)據(jù)塊曙痘,為DataFrame格式
height,width = df1.shape
print(height,width,type(df1))
>>111027 16 <class 'pandas.core.frame.DataFrame'>
對CSV、excel表格數(shù)據(jù)進行簡單篩選
查詢表格各列數(shù)據(jù)格式
df1.dtypes
>>首購時間 datetime64[ns]
學員id int64
購買課程類型 object
python立肘、NumPy 格式類型的對應關系更改表格各列數(shù)據(jù)格式
df.astype('數(shù)據(jù)類型') #改變整個df的數(shù)據(jù)類型
df['列名'].astype('數(shù)據(jù)類型') #僅改變某一列的數(shù)據(jù)類型
df1['學員id']=df1['學員id'].astype('object')
df1.dtypes
>>
首購時間 datetime64[ns]
學員id object
購買課程類型 object
條件篩選數(shù)據(jù)
數(shù)據(jù)列大小比較
df1['金額']>200
字符列精確篩選
df1['購買課程類型']=='試聽課'
字符列滿足任意條件
df1['購買課程類型'].isin(['試聽課','小班課']) #篩選購買課程類型為'試聽課'或'小班課'的列
字符列模糊篩選
df1['購買課程類型'].str.contains('課') #購買課程類型中边坤,只要帶有課字的,均篩選
字符列多個模糊條件篩選
df1['購買課程類型'].str.contains('課|正式') #購買課程類型中谅年,只要帶有'課'字或'正式'的茧痒,均篩選
時間列比較
dt = datetime.datetime(2021,1, 1)
df1['首購時間']>dt #篩選首購時間在2021/1/1日以后的列
多條件篩選
sx = df1[(df1['金額']>200)&(df1['購買課程類型']=='試聽課')&(df1['首購時間']>dt)] #且條件篩選
任意條件篩選
sx = df1[(df1['金額']>200)|(df1['購買課程類型']=='試聽課')|(df1['首購時間']>dt)] #或條件篩選
反向篩選
sx = df1[(df1['金額']>200)&(df1['購買課程類型']=='試聽課')&(df1['首購時間']>dt)]
sx2 = df1[~df1['學員id'].isin(sx['學員id'])] #篩選學員id不在sx表中的數(shù)據(jù)
對CSV、excel表格數(shù)據(jù)進行輸出
直接使用pandas進行輸出
df.to_excel()
常用參數(shù)解析:
excel_writer:文件路徑或現(xiàn)有的ExcelWriter融蹂。
sheet_name:包含DataFrame的工作表的名稱旺订。
na_repr:缺少數(shù)據(jù)表示形式弄企。
float_format:這是一個可選參數(shù), 用于格式化浮點數(shù)字符串。
header:寫出列名区拳。如果給出了字符串列表, 則假定它是列名的別名拘领。
index:寫入索引。
index_label:引用索引列的列標簽樱调。如果未指定, 并且標頭和索引為True, 則使用索引名稱约素。如果DataFrame使用MultiIndex, 則應給出一個序列。
merge_cells:返回布爾值, 其默認值為True笆凌。它將MultiIndex和Hierarchical行寫為合并的單元格圣猎。
sx.to_excel('新學生管理.xlsx',index = False)
sx.to_csv('新學生管理.xlsx',index = False)