1. 程式人生 > >資料視覺化部分操作

資料視覺化部分操作

讀取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') #最近鄰插補--用缺失值的前一個值填充