資料視覺化部分操作
阿新 • • 發佈:2018-12-18
讀取Excle資料
pd.read_excel() 值: io, # excel 路徑 sheetname=0, # 預設是sheetname為0,返回多表使用sheetname=[0,1],若sheetname=None是返回全表 。注意:int/string返回的是dataframe,而none和list返回的是dict of dataframe。 header=0, # 指定作為列名的行,預設0,即取第一行,資料為列名行以下的資料;若資料不含列名,則設定 header = None; skiprows=None, # 省略指定行數的資料 skip_footer:省略從尾部數的行資料 index_col=None, # 指定列為索引列,也可以使用 u’string’ names=None, # 指定列的名字,傳入一個list資料
匯出資料
import pandas as pd
import openpyxl
df = pd.read_excel("D:\\pycharm\\data\\test.xlsx")
df.to_excel("D:\\pycharm\\data\\excel2excel.xlsx", encoding='utf-8', index=False) #資料匯出到excel2excel.xlxs
dt = pd.read_excel("D:\\pycharm\\data\\excel2excel.xlsx")
print(dt)
匯入資料庫
import pandas as pd # 讀取mysql import MySQLdb mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='username', passwd='password', db='mydb') df = pd.read_sql('select * from test;', con=mysql_cn) mysql_cn.close()
去重
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False) subset # 對應的值是列名,表示只考慮這兩列,將這兩列對應值相同的行進行去重。預設值為subset=None表示考慮所有列。 keep='first' # 表示保留第一次出現的重複行,是預設值。keep另外兩個取值為"last"和False,分別表示保留最後一次出現的重複行和去除所有重複行。 inplace=True # 表示直接在原來的DataFrame上刪除重複項,而預設值False表示生成一個副本。
缺失值處理
datafile = u'E:\\pythondata\\tt.xlsx'#檔案所在位置
data = pd.read_excel(datafile)#如果是csv檔案則用read_csv
print("顯示缺失值,缺失則顯示為TRUE:\n", data.isnull())#是缺失值返回True,否則範圍False
print("---------------------------------\n顯示每一列中有多少個缺失值:\n",data.isnull().sum())#返回每列包含的缺失值的個數
刪除缺失值具體的情況是一下幾種:
data.dropna() # 直接刪除含有缺失值的行
data.dropna(axis = 1) # 直接刪除含有缺失值的列
data.dropna(how = 'all') # 只刪除全是缺失值的行
data.dropna(thresh = 3) # 保留至少有3個非空值的行
data.dropna(subset = [u'血型 ']) # 判斷特定的列,若該列含有缺失值則刪除缺失值所在的行
簡單的缺失值插補方法:
data.fillna(data.mean()) # 均值插補
data.fillna(data.median()) # 中位數插補
data.fillna(data.mode()) # 眾數插補
data.fillna(data.max()) # 最大值插補
data.fillna(data.min()) # 最小值插補
data.fillna(0) # 固定值插補--用0填充
data.fillna(5000) #固定值插補--用已知的行業基本工資填充
data.fillna(method='ffill')#最近鄰插補--用缺失值的前一個值填充
data.fillna(method='pad') #最近鄰插補--用缺失值的前一個值填充