读取数据,输出每个有效变量的数据分布图:
import math
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
class EDA:
# def __init__(self,file_path):
# self.file_path=file_path
#获得数据
def get_data(file_path):
file_type = file_path.split('.')[1]
if file_type=='txt':
df=pd.read_table(file_path)
elif file_type=='csv':
df=pd.read_csv(file_path)
elif file_type == 'xls' or file_type == 'xlsx':
df = pd.read_excel(file_path)
return df
#获取每列数据类型
def get_col_type(df):
# df=get_data(file_path)
label_col=list(set(df.columns)-set(df.describe().columns))
other_col=list(set(df.columns)-set(label_col))
num_col=[]
for col in other_col:
if len(set(df[col]))<10:
label_col.append(col)
else:
num_col.append(col)
return label_col,num_col
#绘图看数据分布
def eda_plot(df,label_col,num_col):
df_count = df.shape[0]
df_col=df.columns.tolist()
k = 0
for col in df_col:
#对数值型数据进行直方图,箱线图,小提琴图
if col in num_col:
if math.floor(len(set(df[col]))*100/df_count)<50:
df = df[(df[col].notnull())].sort_values(col, ascending=True).reset_index(drop=True)
k = k + 1
plt.figure(k)
plt.subplot(1,3,1)
plt.hist(df[col])
plt.subplot(1,3,2)
plt.boxplot(df[col])
plt.gca().set_title(' %s 分布' %col)
plt.subplot(1,3,3)
plt.violinplot(df[col])
plt.tight_layout()
elif col in label_col:
#类别型数据画柱形图和饼图
if math.floor(len(set(df[col]))*100/df_count)<5:
#k=k+1
#df_0=pd.DataFrame(df[col].index.values.tolist(),columns=[col])
df_0= df.groupby([col]).agg({
col:['count']})
df_1=df_0.iloc[:,0].tolist()
#df_0['count'] = df.groupby([col]).agg({col:['count']})
x_axle = range(len(set(df[col].dropna())))
y_axle = df_1
x_label = list(set(df[col].dropna()))
fig, (ax1, ax2) = plt.subplots(2)
ax1.bar(x_axle,y_axle)
ax1.set_xticks(x_axle)
ax1.set_xticklabels(x_label)
ax1.set_title(' %s 分布' % (col))
ax2.pie(y_axle,labels=x_label, autopct='%1.2f%%')
else:
pass
if __name__=="__main__":
df=EDA.get_data(r'C:\Users\Tiantic\train.csv')
label_col,num_col=EDA.get_col_type(df)
EDA.eda_plot(df,label_col,num_col)
输出结果:
在EDA类下定义了简单的数据处理包,但是没有把前两个进行实例化(做了没有成功),有好的方法可以留言交流哈
相关题目与解析减少使用连接同义词或相关词的“或OR”运算可以缩小检索范围。()机检时,缩小检索结果的方式有()。A用OR连接检索词B用同义词检索C用AND连接检索词D使用扩展检索缩小检索范围的检索策略调整方法有()。A.减少同义词或同族相关词B.增加同义词或同族相关词,使用逻辑“使用“或OR”运算将同义词连接起来可以扩大检索范围。()减少使用连接同义词或相关词的“或OR”运算可以扩大检索范围。()..._在机检中, 缩小检索范围的方式有
java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的问题是,我该学 Java 还是 Python,是不是 Python 容易学,或是应该先学什么编程语言等等这样的问题。作为一名 Java 程序员,肯定会建议你先学 Java,然后再学 Python,但如果你问一个 Python 程序员,可能会得..._有道学python
beginfor c in (select COLUMN_NAME cn from all_tab_columns where table_name='MIGU_UE_MODEL_MONTH') loopbeginexecute immediate 'alter table MIGU_UE_MODEL_MONTH rename column "'||c.cn||'" to '||c.cn;..._oracle 更新表字段转大写
SHT30 温度 湿度 ESP32用硬件IIC I2C读取 _arduino eps32 i2c 示例
软考,2004软考改革,职称以考代评系统分析师考试,就是参加软考。软考——中国计算机技术与软件专业技术资格考试,是国家级的IT专业技术人员从业资格考试。2003年底,人事部和信息产业部联合发布了国人部发[2003]39号文件,以软考为基础,对IT领域职称评定进行全面改革,使得已有逾十年历史的软考具有更诱人的内涵:以考代评全面实现,考过即可得职称 国人部发[2003
算法提高 最小乘积(提高型)时间限制:1.0s 内存限制:512.0MB问题描述 给两组数,各n个。 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。 例如两组数分别为:1 3 -5和-2 4 1那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25输入格式 第一个行一..._试题 算法提高 最小乘积(提高型) java
播放控制栏界面编写,预览:控制栏主体:Rectangle{ width: parent.width height: 54*dp color: "#ffffff" Rectangle{ id:border__ anchors.top: parent.top width: parent.width heig...
用smartuploat上传文件时报错:java.lang.NegativeArraySizeException此错误一般是因为form写法有错误method要为post并且加上ENCTYPE="multipart/form-data"
29代码实验结果解释优点所有内容均来源于贾志刚老师的知识星球——OpenCV研习社,本文为个人整理学习,已获得贾老师授权,有兴趣、有能力的可以加入贾老师的知识星球进行深入学习。..._cv::recurs_filter
什么是地理编码地理编码是将地址(如“1600 Amphitheatre Parkway, Mountain View, CA”)转换为地理坐标(如纬度 37.423021 和经度 -122.083739)的过程,您可以根据该地理坐标放置标记或定位地图。Google Geocoding API 可让您通过 HTTP 请求直接访问地理编码器。此外,该服务还可让您执行反向操作(将坐标转换为地址)_google地图 正反向地理定位api
一、Hardy Weinberg定律在全基因组关联分析的文章中,我们经常会看到作者对待研究的基因位点是否符合遗传平衡定律(又称Hardy Weinberg定律)进行检验。那么为什么要这么做呢?具体的方法和原理又是什么?遗传平衡定律(又称Hardy Weinberg定律)。意即一个群体符合这种状况,即达到了遗传平衡,也就是一对等位基因的3种基因型的比例分布符合公式:p2+2pq+q2=1,p+q=1..._pearson残差
常言道,工欲善其事,必先利其器。只有深度了解一件事物的规则机制,才能更好的运用它。字节跳动旗下的抖音作为短视频中的领军平台,我们今天带领大家从多个角度来深度解读抖音平台的规则和机制。一、了解抖音特性1.去中心化算法去中心化的基本概念:在一个分布有众多节点的系统中,每个节点都具有高度自治的特征。节点之间彼此可以自由连接,形成新的连接单元。任何一个节点都可能成为阶段性的中心,但不具备强制性的中心控制功能。节点与节点之间的影响,会通过网络而形成非线性因果关系。这种开放式、扁平化、平等性的系统现象或_抖音流量机制和运营规则