Julia: DataFrame最大的好处是对NA的处理和对象化操作!
和Array相比: A new Julia type that represents a missing value NA。另外,在数据的操作友好性上,提供了对象性操作方式,而不是冰冷的数据下标。
缺点是,其效率没有Array高。如果数据操作量大,效率会受到一定的影响,这个有些象MATLAB中的dataset.
当然,要用DataFrame,首先要加DataFrames库包,另外,using DataFrames.
1、对象化操作
假设,A:是字段,B也是字段
julia> df = DataFrame(A = 1:4, B = ["M", "F", "F", "M"])
4x2 DataFrame:
A B
[1,] 1 "M"
[2,] 2 "F"
[3,] 3 "F"
[4,] 4 "M"
julia> df["A"] #df[:A] 对象化操作的方式,再也不是第几行,第几列了,人性化呀
4-element DataArray{Int64,1}:
1
2
3
4
2、增加列操作
julia>df["c"]=2:5 # 增加一列
2:5
julia> df
4x3 DataFrame:
A B c
[1,] 1 "M" 2
[2,] 2 "F" 3
[3,] 3 "F" 4
[4,] 4 "M" 5
3、 增加一行操作
julia> de =DataFrame(A = 2,B ="g",c=5)
1x3 DataFrame:
A B c
[1,] 2 "g" 5
julia> df =vcat(df,de)
5x3 DataFrame:
A B c
[1,] 1 "M" 2
[2,] 2 "F" 3
[3,] 3 "F" 4
[4,] 4 "M" 5
[5,] 2 "g" 5
4、读到csv,txt 的IO操作
主要函数格式有:
df =readtable("data.csv")
df = readtable("data.tsv")
df =readtable("data.wsv")
df =readtable("data.txt", separator = '\t')
df =readtable("data.txt", header = false)
比如:读CSV数据
julia> @time df =readtable("C:\\Users\\Administrator\\Desktop\\julia\\mydatacsv.csv")
elapsed time: 0.321465977 seconds(12324052 bytes allocated)
DataFrame with 5085 rows, 11columns
Columns:
FutureCode 5085 non-null values
DateTime 5085 non-null values
BarEndTime 5085 non-null values
Close 5085 non-null values
Open 5085 non-null values
High 5085 non-null values
Low 5085 non-null values
PreClose 5085 non-null values
Volume 5085 non-null values
OpenInterest 5085 non-null values
BarCount 5085 non-null values
5、 写操作
格式:
writetable("output.csv",df)
writetable("output.dat",df, separator = ',', header = false)
writetable("output.dat",df, quotemark = '\'', separator = ',')
writetable("output.dat",df, header = false)
6、索引和条件检索
df = DataFrame(A = 1:10)
# 索引 注意:和MATLAB不一样,所有的向量计算,都加了一个".",否则容易出错!
julia> df[df[:Close].>2000,:]
DataFrame with 5085 rows, 11columns
Columns:
FutureCode 5085 non-null values
DateTime 5085 non-null values
BarEndTime 5085 non-null values
Close 5085 non-null values
Open 5085 non-null values
High 5085 non-null values
Low 5085 non-null values
PreClose 5085 non-null values
Volume 5085 non-null values
OpenInterest 5085 non-null values
BarCount 5085 non-null values
7、类型判断
julia> typeof(df)
DataFrame (constructor with 22 methods)
8、合并操作
# 合并,vcat,join 操作,但没有看到push! ,append! add!
julia> @time vcat(hh,kk)
elapsed time: 0.00010462 seconds (110802x2 DataFrame:
A B
[1,] 5.0 10.0
[2,] 1.0 9.0
julia> @time vcat(df,kk) # 时间增加了三倍
elapsed time: 0.000374261 seconds (84696 bytes allocated)
1001x2 DataFrame:
A B
[1,] 1.0 9.0
[2,] 5.0 10.0
[3,] 3.0 6.0
.......
julia> @time vcat(df,df) # 时间还在增长
elapsed time: 0.000719703 seconds (181256 bytes allocated)
2000x2 DataFrame:
A B
[1,] 1.0 9.0
[2,] 5.0 10.0
[3,] 3.0 6.0
.....
Julia: DataFrame最大的好处是对NA的处理和对象化操作!相关推荐
- R语言自定义函数计算dataframe每列中的缺失值NA的个数、缺失值问题及其填充示例
R语言自定义函数计算dataframe每列中的缺失值NA的个数.缺失值问题及其填充示例 目录
- R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计、所有特征的NA值统计
R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计.所有特征的NA值统计 目录
- Python数据分析实战-提取DataFrame(Excel)某列(字段)最全操作(附源码和实现效果)
实现功能: Python数据分析实战-提取DataFrame(Excel)某列(字段)最全操作,代码演示了单列提取和多列提取两种情况,其中单列提取有返回series格式和dataframe两种情况,在 ...
- Spark中dataframe里data.drop()和data.na.drop()的区别
问题描述:原始数据data总行数是1303638,使用data.drop()后数据总行数是1303638,使用data.na.drop()后数据总行数是0:为啥data.drop()没有丢弃null或 ...
- dataframe,python,numpy 问题索引1
# 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...
- 数据科学教程:R语言与DataFrame[2016版]
数据科学教程:R语言与DataFrame[2016版] r HarryZhu 2016年03月16日发布 保存 标签:至少1个,最多5个 r× 开发语言 平台框架 服务器 数据库和缓存 开发工具 系统 ...
- dataframe 如何选中某列的一行_PySpark和SparkSQL基础:如何利用Python编程执行Spark(附代码)
作者:Pinar Ersoy 翻译:孙韬淳 校对:陈振东 本文约2500字,建议阅读10分钟 本文通过介绍Apache Spark在Python中的应用来讲解如何利用PySpark包执行常用函数来进行 ...
- python dataframe的某一列变为list_Python数据分析系列文章之Pandas(上)
本篇是[机器学习与数据挖掘]头条号原创首发Python数据分析系列文章的第三篇 Python数据分析系列文章之Python基础篇 Python数据分析系列文章之Numpy Python数据分析系列文章 ...
- Python中三种表示NA的方式
Python中三种表示NA的方式 # -*- coding: utf-8 -*- import numpy as np import pandas as pd# data_frame = np.loa ...
- Apache Spark 3.0 SQL DataFrame和DataSet指南
目录 简介 SQL 数据集和数据框 入门 起点:SparkSession Scala语言 Java语言 Python语言 R语言 创建DataFrame Scala语言 Java语言 Python语言 ...
最新文章
- Flex和java开发的参考书
- matlab2010alinux下载,Linux matlab 2010a 下载与安装过程
- 十分钟教你开发EOS智能合约
- 救命,Linux正在吃掉我的内存!
- Redis队列php多线程请求
- [leetcode]112.路径总和
- 一起动手打造个人娱乐级linux
- ASP.NET MVC 3 Validation - 正则表达式验证RegularExpressionAttribute之日期验证
- 【修改电脑版微信提示音】
- 阿里云mysql宽带_阿里云数据库RDS MySQL版购买使用详细过程
- 【前端灵魂脚本语言JavaScript⑤】——JS中数组的使用
- 大家给推荐个4k显示器吧,码农,不玩游戏,护眼第一。
- 查找算法与排序算法之Python实现
- 又老了一岁,祝自己生日快乐。。。
- 基于springboot小型车队管理系统毕业设计源码061709
- 【渝粤教育】 广东开放大学21秋期末考试刑事诉讼法学10228k2
- pthread_cancel 线程阻塞问题
- 全向移动平台运动参数分析
- LEDE/Openwrt 打印机插件 CUPS,在WIN10下添加打印机(打印机连接路由器进行远程打印)
- 读《DevOps实践指南》笔记二
热门文章
- JDK版本更换后编译android系统出错
- ERROR 1044 (42000)
- RD与RT MPLS
- MySQL-快速入门(4)MySQL函数
- JZOJ 1259. 牛棚安排
- There is no getter for property named 'userId' in 'class java.lang.String'
- 项目中初试PHP单元测试
- property attribute: assign, strong, weak, unsafe_unretain and copy
- text-overflow:ellipsis
- Android -- 闹钟服务的使用(单次闹钟)