数据可视化部分操作

读取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') #最近邻插补--用缺失值的前一个值填充

猜你喜欢

转载自blog.csdn.net/qq_43483565/article/details/84724381