对Titanic公开数据集进行缺失值统计
2019独角兽企业重金招聘Python工程师标准>>>
/*
参考资料:
http://spark.apache.org/docs/2.3.2/sql-programming-guide.html
https://blog.csdn.net/dreamer2020/article/details/51284789
https://blog.csdn.net/supersalome/article/details/78849581*/import org.apache.spark.ml.feature.{Imputer, StandardScaler}
import org.apache.spark.ml.feature.{StringIndexer, OneHotEncoderEstimator}
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.{Pipeline, PipelineModel}
import org.apache.spark.ml.evaluation.BinaryClassificationEvaluator
import org.apache.spark.ml.tuning.{ParamGridBuilder, CrossValidator}val titanicDFCsv = (spark.read.format("csv").option("sep", ",").option("inferSchema", "true").option("header", "true").load("/titanic_data/train.csv"))/*scala> titanicDFCsv.printSchema
root|-- PassengerId: integer (nullable = true)|-- Survived: integer (nullable = true)|-- Pclass: integer (nullable = true)|-- Name: string (nullable = true)|-- Sex: string (nullable = true)|-- Age: double (nullable = true)|-- SibSp: integer (nullable = true)|-- Parch: integer (nullable = true)|-- Ticket: string (nullable = true)|-- Fare: double (nullable = true)|-- Cabin: string (nullable = true)|-- Embarked: string (nullable = true)*/ //统计Cabin取值分布情况/*scala> titanicDFCsv.groupBy("Cabin").agg(count("Cabin") as "cnts").sort(desc("cnts")).show()
+-----------+----+
| Cabin|cnts|
+-----------+----+
| G6| 4|
|C23 C25 C27| 4|
| B96 B98| 4|
| C22 C26| 3|
| D| 3|
| E101| 3|
| F2| 3|
| F33| 3|
| B22| 2|
| C65| 2|
| B18| 2|
| E8| 2|
| D35| 2|
| C126| 2|
|B51 B53 B55| 2|
| B20| 2|
| F G73| 2|
| C78| 2|
| B58 B60| 2|
| C83| 2|
+-----------+----+
only showing top 20 rows*/titanicDFCsv.filter("Cabin is null").select("Cabin").show()
/*
scala> titanicDFCsv.filter("Cabin is null").select("Cabin").count()
res7: Long = 687
*///统计Cabin字段缺失值个数
/*
scala> titanicDFCsv.filter($"Cabin".isNull).count()
res46: Long = 687
*/scala> titanicDFCsv.filter($"Cabin".isNull).show
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|PassengerId|Survived|Pclass| Name| Sex| Age|SibSp|Parch| Ticket| Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
| 1| 0| 3|Braund, Mr. Owen ...| male|22.0| 1| 0| A/5 21171| 7.25| null| S|
| 3| 1| 3|Heikkinen, Miss. ...|female|26.0| 0| 0|STON/O2. 3101282| 7.925| null| S|
| 5| 0| 3|Allen, Mr. Willia...| male|35.0| 0| 0| 373450| 8.05| null| S|
| 6| 0| 3| Moran, Mr. James| male|null| 0| 0| 330877| 8.4583| null| Q|
| 8| 0| 3|Palsson, Master. ...| male| 2.0| 3| 1| 349909| 21.075| null| S|
| 9| 1| 3|Johnson, Mrs. Osc...|female|27.0| 0| 2| 347742|11.1333| null| S|
| 10| 1| 2|Nasser, Mrs. Nich...|female|14.0| 1| 0| 237736|30.0708| null| C|
| 13| 0| 3|Saundercock, Mr. ...| male|20.0| 0| 0| A/5. 2151| 8.05| null| S|
| 14| 0| 3|Andersson, Mr. An...| male|39.0| 1| 5| 347082| 31.275| null| S|
| 15| 0| 3|Vestrom, Miss. Hu...|female|14.0| 0| 0| 350406| 7.8542| null| S|
| 16| 1| 2|Hewlett, Mrs. (Ma...|female|55.0| 0| 0| 248706| 16.0| null| S|
| 17| 0| 3|Rice, Master. Eugene| male| 2.0| 4| 1| 382652| 29.125| null| Q|
| 18| 1| 2|Williams, Mr. Cha...| male|null| 0| 0| 244373| 13.0| null| S|
| 19| 0| 3|Vander Planke, Mr...|female|31.0| 1| 0| 345763| 18.0| null| S|
| 20| 1| 3|Masselmani, Mrs. ...|female|null| 0| 0| 2649| 7.225| null| C|
| 21| 0| 2|Fynney, Mr. Joseph J| male|35.0| 0| 0| 239865| 26.0| null| S|
| 23| 1| 3|"McGowan, Miss. A...|female|15.0| 0| 0| 330923| 8.0292| null| Q|
| 25| 0| 3|Palsson, Miss. To...|female| 8.0| 3| 1| 349909| 21.075| null| S|
| 26| 1| 3|Asplund, Mrs. Car...|female|38.0| 1| 5| 347077|31.3875| null| S|
| 27| 0| 3|Emir, Mr. Farred ...| male|null| 0| 0| 2631| 7.225| null| C|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
only showing top 20 rowstitanicDFCsv.select(titanicDFCsv.columns.map(c => sum(col(c).isNull.cast("int")).alias(c)): _*).show
/*scala> titanicDFCsv.select(titanicDFCsv.columns.map(c => sum(col(c).isNull.cast("int")).alias(c)): _*).show
+-----------+--------+------+----+---+---+-----+-----+------+----+-----+--------+
|PassengerId|Survived|Pclass|Name|Sex|Age|SibSp|Parch|Ticket|Fare|Cabin|Embarked|
+-----------+--------+------+----+---+---+-----+-----+------+----+-----+--------+
| 0| 0| 0| 0| 0|177| 0| 0| 0| 0| 687| 2|
+-----------+--------+------+----+---+---+-----+-----+------+----+-----+--------+
*///对于数值型变量,既可以使用$"Age" > 21, 也可以使用"Age > 21"
titanicDFCsv.filter($"Age" > 21).show()
/*
scala> titanicDFCsv.filter("Age > 21").show()
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|PassengerId|Survived|Pclass| Name| Sex| Age|SibSp|Parch| Ticket| Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
| 1| 0| 3|Braund, Mr. Owen ...| male|22.0| 1| 0| A/5 21171| 7.25| null| S|
| 2| 1| 1|Cumings, Mrs. Joh...|female|38.0| 1| 0| PC 17599|71.2833| C85| C|
| 3| 1| 3|Heikkinen, Miss. ...|female|26.0| 0| 0|STON/O2. 3101282| 7.925| null| S|
| 4| 1| 1|Futrelle, Mrs. Ja...|female|35.0| 1| 0| 113803| 53.1| C123| S|
| 5| 0| 3|Allen, Mr. Willia...| male|35.0| 0| 0| 373450| 8.05| null| S|
| 7| 0| 1|McCarthy, Mr. Tim...| male|54.0| 0| 0| 17463|51.8625| E46| S|
| 9| 1| 3|Johnson, Mrs. Osc...|female|27.0| 0| 2| 347742|11.1333| null| S|
| 12| 1| 1|Bonnell, Miss. El...|female|58.0| 0| 0| 113783| 26.55| C103| S|
| 14| 0| 3|Andersson, Mr. An...| male|39.0| 1| 5| 347082| 31.275| null| S|
| 16| 1| 2|Hewlett, Mrs. (Ma...|female|55.0| 0| 0| 248706| 16.0| null| S|
| 19| 0| 3|Vander Planke, Mr...|female|31.0| 1| 0| 345763| 18.0| null| S|
| 21| 0| 2|Fynney, Mr. Joseph J| male|35.0| 0| 0| 239865| 26.0| null| S|
| 22| 1| 2|Beesley, Mr. Lawr...| male|34.0| 0| 0| 248698| 13.0| D56| S|
| 24| 1| 1|Sloper, Mr. Willi...| male|28.0| 0| 0| 113788| 35.5| A6| S|
| 26| 1| 3|Asplund, Mrs. Car...|female|38.0| 1| 5| 347077|31.3875| null| S|
| 31| 0| 1|Uruchurtu, Don. M...| male|40.0| 0| 0| PC 17601|27.7208| null| C|
| 34| 0| 2|Wheadon, Mr. Edwa...| male|66.0| 0| 0| C.A. 24579| 10.5| null| S|
| 35| 0| 1|Meyer, Mr. Edgar ...| male|28.0| 1| 0| PC 17604|82.1708| null| C|
| 36| 0| 1|Holverson, Mr. Al...| male|42.0| 1| 0| 113789| 52.0| null| S|
| 41| 0| 3|Ahlin, Mrs. Johan...|female|40.0| 1| 0| 7546| 9.475| null| S|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
only showing top 20 rows*///此处的等号有2个,注意跟"||"、&&结合使用时候等号的差别(有三个等号)
/*
scala> titanicDFCsv.filter("Age == 21").show()
+-----------+--------+------+--------------------+------+----+-----+-----+-----------------+-------+-----+--------+
|PassengerId|Survived|Pclass| Name| Sex| Age|SibSp|Parch| Ticket| Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+-----------------+-------+-----+--------+
| 38| 0| 3|Cann, Mr. Ernest ...| male|21.0| 0| 0| A./5. 2152| 8.05| null| S|
| 52| 0| 3|Nosworthy, Mr. Ri...| male|21.0| 0| 0| A/4. 39886| 7.8| null| S|
| 57| 1| 2| Rugg, Miss. Emily|female|21.0| 0| 0| C.A. 31026| 10.5| null| S|
| 73| 0| 2|Hood, Mr. Ambrose Jr| male|21.0| 0| 0| S.O.C. 14879| 73.5| null| S|
| 103| 0| 1|White, Mr. Richar...| male|21.0| 0| 1| 35281|77.2875| D26| S|
| 107| 1| 3|Salkjelsvik, Miss...|female|21.0| 0| 0| 343120| 7.65| null| S|
| 116| 0| 3|Pekoniemi, Mr. Ed...| male|21.0| 0| 0|STON/O 2. 3101294| 7.925| null| S|
| 121| 0| 2|Hickman, Mr. Stan...| male|21.0| 2| 0| S.O.C. 14879| 73.5| null| S|
| 174| 0| 3|Sivola, Mr. Antti...| male|21.0| 0| 0|STON/O 2. 3101280| 7.925| null| S|
| 392| 1| 3|Jansson, Mr. Carl...| male|21.0| 0| 0| 350034| 7.7958| null| S|
| 403| 0| 3|Jussila, Miss. Ma...|female|21.0| 1| 0| 4137| 9.825| null| S|
| 409| 0| 3|Birkeland, Mr. Ha...| male|21.0| 0| 0| 312992| 7.775| null| S|
| 422| 0| 3| Charters, Mr. David| male|21.0| 0| 0| A/5. 13032| 7.7333| null| Q|
| 437| 0| 3|"Ford, Miss. Dool...|female|21.0| 2| 2| W./C. 6608| 34.375| null| S|
| 492| 0| 3| Windelov, Mr. Einar| male|21.0| 0| 0| SOTON/OQ 3101317| 7.25| null| S|
| 495| 0| 3|Stanley, Mr. Edwa...| male|21.0| 0| 0| A/4 45380| 8.05| null| S|
| 502| 0| 3| Canavan, Miss. Mary|female|21.0| 0| 0| 364846| 7.75| null| Q|
| 624| 0| 3|Hansen, Mr. Henry...| male|21.0| 0| 0| 350029| 7.8542| null| S|
| 625| 0| 3|"Bowen, Mr. David...| male|21.0| 0| 0| 54636| 16.1| null| S|
| 628| 1| 1|Longley, Miss. Gr...|female|21.0| 0| 0| 13502|77.9583| D9| S|
+-----------+--------+------+--------------------+------+----+-----+-----+-----------------+-------+-----+--------+
only showing top 20 rows
*///对字符型变量进行过滤
scala> titanicDFCsv.filter($"Cabin".equalTo("E101")).show()
+-----------+--------+------+--------------------+------+----+-----+-----+------+-----+-----+--------+
|PassengerId|Survived|Pclass| Name| Sex| Age|SibSp|Parch|Ticket| Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+------+-----+-----+--------+
| 124| 1| 2| Webber, Miss. Susan|female|32.5| 0| 0| 27267| 13.0| E101| S|
| 304| 1| 2| Keane, Miss. Nora A|female|null| 0| 0|226593|12.35| E101| Q|
| 718| 1| 2|"Troutt, Miss. Ed...|female|27.0| 0| 0| 34218| 10.5| E101| S|
+-----------+--------+------+--------------------+------+----+-----+-----+------+-----+-----+--------+//逻辑连接符 &&(并)、||(或)
/*
scala> titanicDFCsv.filter($"Cabin".equalTo("E101")&&$"Age">21).show()
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
|PassengerId|Survived|Pclass| Name| Sex| Age|SibSp|Parch|Ticket|Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
| 124| 1| 2| Webber, Miss. Susan|female|32.5| 0| 0| 27267|13.0| E101| S|
| 718| 1| 2|"Troutt, Miss. Ed...|female|27.0| 0| 0| 34218|10.5| E101| S|
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
*///统计Cabin取值为"E101"且Age取值为27的记录
/*
scala> titanicDFCsv.filter($"Cabin".equalTo("E101")&&$"Age"===27.0).show()
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
|PassengerId|Survived|Pclass| Name| Sex| Age|SibSp|Parch|Ticket|Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
| 718| 1| 2|"Troutt, Miss. Ed...|female|27.0| 0| 0| 34218|10.5| E101| S|
+-----------+--------+------+--------------------+------+----+-----+-----+------+----+-----+--------+
*///统计Cabin取值为"E101"或Age取值为27的记录,注意数值型变量有三个等号
/*
scala> titanicDFCsv.filter($"Cabin".equalTo("E101")||$"Age"===27.0).show()
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
|PassengerId|Survived|Pclass| Name| Sex| Age|SibSp|Parch| Ticket| Fare|Cabin|Embarked|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
| 9| 1| 3|Johnson, Mrs. Osc...|female|27.0| 0| 2| 347742|11.1333| null| S|
| 42| 0| 2|Turpin, Mrs. Will...|female|27.0| 1| 0| 11668| 21.0| null| S|
| 124| 1| 2| Webber, Miss. Susan|female|32.5| 0| 0| 27267| 13.0| E101| S|
| 147| 1| 3|"Andersson, Mr. A...| male|27.0| 0| 0| 350043| 7.7958| null| S|
| 217| 1| 3|Honkanen, Miss. E...|female|27.0| 0| 0|STON/O2. 3101283| 7.925| null| S|
| 222| 0| 2|Bracken, Mr. James H| male|27.0| 0| 0| 220367| 13.0| null| S|
| 304| 1| 2| Keane, Miss. Nora A|female|null| 0| 0| 226593| 12.35| E101| Q|
| 322| 0| 3| Danoff, Mr. Yoto| male|27.0| 0| 0| 349219| 7.8958| null| S|
| 378| 0| 1|Widener, Mr. Harr...| male|27.0| 0| 2| 113503| 211.5| C82| C|
| 552| 0| 2|Sharp, Mr. Perciv...| male|27.0| 0| 0| 244358| 26.0| null| S|
| 608| 1| 1|Daniel, Mr. Rober...| male|27.0| 0| 0| 113804| 30.5| null| S|
| 621| 0| 3| Yasbeck, Mr. Antoni| male|27.0| 1| 0| 2659|14.4542| null| C|
| 682| 1| 1| Hassab, Mr. Hammad| male|27.0| 0| 0| PC 17572|76.7292| D49| C|
| 718| 1| 2|"Troutt, Miss. Ed...|female|27.0| 0| 0| 34218| 10.5| E101| S|
| 725| 1| 1|Chambers, Mr. Nor...| male|27.0| 1| 0| 113806| 53.1| E8| S|
| 805| 1| 3|Hedman, Mr. Oskar...| male|27.0| 0| 0| 347089| 6.975| null| S|
| 822| 1| 3| Lulic, Mr. Nikola| male|27.0| 0| 0| 315098| 8.6625| null| S|
| 824| 1| 3| Moor, Mrs. (Beila)|female|27.0| 0| 1| 392096| 12.475| E121| S|
| 867| 1| 2|Duran y More, Mis...|female|27.0| 1| 0| SC/PARIS 2149|13.8583| null| C|
| 887| 0| 2|Montvila, Rev. Ju...| male|27.0| 0| 0| 211536| 13.0| null| S|
+-----------+--------+------+--------------------+------+----+-----+-----+----------------+-------+-----+--------+
*///统计Cabin取值为空或Age取值为空的记录
/*
scala> titanicDFCsv.filter($"Cabin".isNull||$"Age".isNull).count()
res47: Long = 706
*/
转载于:https://my.oschina.net/kyo4321/blog/2994649
对Titanic公开数据集进行缺失值统计相关推荐
- 机器学习和数据科学中常用的公开数据集(含计算机视觉最全数据集汇总)
数据集查找器 Google Dataset Search:与Google Scholar的工作方式类似,Dataset Search 可以让你在任何托管的地方找到数据集,无论是出版商的网站,还是数字图 ...
- 数据挖掘公开数据集【汇总】
公开数据集指的是不同的公司.组织公开的用于机器学习.深度学习.人工智能等方向大规模数据集合.以下数据集可用于数据分析.数据挖掘和机器学习等大数据场景下的测试和学习. 按照数据工作的不同应用主题方向,分 ...
- MaxCompute SQL大数据公开数据集实战
MaxCompute公开数据集简介 目前阿里云MaxCompute已经免费向全部用户开放了多种公用数据集,包括: 股票价格数据 房产信息 影视及其票房数据 TPC-DS数据集 这些公开数据现已免费开放 ...
- 23个优秀的机器学习训练公开数据集,一文全知道!
作者 | Nikola M. Zivkovic 转自AI前线 译者 | 王强 策划 | 凌敏 对于学习机器学习的朋友,一般都会用到那些常用的机器学习数据集,这里一篇文章一网打尽,大家可以一次性下载 ...
- 各领域公开数据集下载 | 资源
金融 交通 商业 推荐系统 医疗健康 图像数据 视频数据 音频数据 自然语言处理 社会数据 处理后的科研和竞赛数据 1 金融 **美国劳工部统计局官方发布数据:**http://dataju.cn/D ...
- 网络流量领域公开数据集及工具库
本博客持续更新,收集平常读论文时提高的公开数据集和工具库. 工具库 流量解析 个人喜欢用flowconainer库,使用python解析原始pcap流量,直接pip 按照即可. 使用文档见gitHub ...
- MEG公开数据集整理
关注"心仪脑"查看更多脑科学知识的分 关键词:MEG.公开数据.资源推荐 本期推文是 Public Neuroscience Dataset 系列主题的第四期内容.这期推文编者整理 ...
- 【各个领域公开数据集查找和下载】【定期更新】
各个领域公开数据集查找和下载 写在前面的话 网站 博客 领域 金融 交通 商业 推荐系统 医疗健康 图像数据 综合图像 场景图像 Web标签图像 人形轮廓图像 视觉文字识别图像 特定一类事物图像 材质 ...
- 石油相关公开数据集(免费下载)
Petrol/Gas 全球汽油/天然气价格 背景描述 全球汽油/天然气价格 数据说明 包含按国家/地区划分的汽油消费量的世界份额.每加仑价格.每升价格以及相应的巴基斯坦卢比价格(兑换率 1 美元 = ...
最新文章
- 写在那个毕业五年的日子
- Linux计划任务Crontab介绍
- SAP Spartacus当前产品主数据数据格式的一个例子
- 筛选染色体连续区域的策略
- 11月30在spring mvc中使用Validator框架和文件上传
- int转为string类型方法
- css按钮大小固定,在CSS中创建一个固定宽度的按钮
- apache的rewrite规则来实现URL末尾是否带斜杠
- java实现工单派发_编写官方微信支付 Java SDK 的同学领下工单!
- [转帖]我们是OIer、
- IPv6Tools:IPv6安全审计框架
- SQL Server不允许保存更改【解决】
- Windows运行及cmd常用命令
- 估值3000亿,中国最神秘电商公司,征服美国年轻人
- 黑客红客骇客红客蓝客飞客是什么?有什么区别?(学习资料)
- Flutter开发一个云音乐APP(包含接口地址,亲测可用)
- 【简单】字符串中最长元音字符串的长度
- 反算坐标方位角小程序(c#)
- Java数组转集合之Arrays.asList()用法
- Linux虚拟机配置NAT模式上网时,ping不通百度等网站但能ping通局域网ip解决办法