数据准备
数据说明:第二行第二列是空值;最后一列是空值;

两个重要的库

using DataFrames;
using CSV;
using Dates;

取数据:有首行(header),“,”分割;日期处理

csv_2 = s"C:\Users\songroom\Desktop\000002.XSHE.csv"
@time df = CSV.read(csv_2,header=true,delim=',', dateformat="yyyy/mm/dd");

输出:
可见,有不少的missing.除了第二列open中有一个missing外,但是,还有一列是全是missing.

1、如何把missing换成别的,比如missing=>0.0?
(1)replace!,有时侯可以,但是在这里不行

julia> replace!(df.open,missing =>0.0)
ERROR: setindex! not defined for CSV.Column{Union{Missing, Float64},Union{Missing, Float64}}
Stacktrace:[1] error(::String, ::Type) at .\error.jl:42[2] error_if_canonical_setindex(::IndexLinear, ::CSV.Column{Union{Missing, Float64},Union{Missing, Float64}}, ::Int64) at .\abstractarray.jl:1082[3] setindex! at .\abstractarray.jl:1073 [inlined][4] _replace!(::Base.var"#new#252"{Tuple{Pair{Missing,Float64}}}, ::CSV.Column{Union{Missing, Float64},Union{Missing, Float64}}, ::CSV.Column{Union{Missing,
Float64},Union{Missing, Float64}}, ::Int64) at .\set.jl:626[5] replace_pairs! at .\set.jl:455 [inlined][6] #replace!#251 at .\set.jl:445 [inlined][7] replace!(::CSV.Column{Union{Missing, Float64},Union{Missing, Float64}}, ::Pair{Missing,Float64}) at .\set.jl:445[8] top-level scope at REPL[75]:1

(2)coalesce

df.open = coalesce.(df.open, 0);

看一下效果:
结果是成功的!

(3)简单赋值,不一定可以的。

2、字段更名
把第一列,改为datetime

rename!(df,1=>:datetime) #字段重新命名 ,第1列
row,col = size(df)

3、insert一列,在第一列地方,insert 字段名字dtime

col = [x for x in df.open] .+[x for x in df.close]
insertcols!(df,1,:dtime =>col )

4、删除某列

select!(df, Not(:dtime))

5、names(df) 和 propertynames(df)
names => String

julia> names(df)
14-element Array{String,1}:"dt""open""close""low""high""volume""money""factor""high_limit""low_limit""avg""pre_close""paused""open_interest"

propertynames => Symbol

julia> propertynames(df)
14-element Array{Symbol,1}::dt:open:close:low:high:volume:money:factor:high_limit:low_limit:avg:pre_close:paused:open_interest

6、判断字段是否在其中?

hasproperty(df, :x1) #df是否有字段“x1”
columnindex(df, :x2) #df中索引“x2”排第几?不在其中,为0;

7、赋值

julia> df[1,2]=1111111
1111111

但需要注意,赋值时需要是同一类型。

8、块赋值
9、取前后几行

# 取df中某前几行
first(df,5) # 等价于python pandas head(df)
# 取df中后几行
last(df,5)  # 等价于python pandas tail(df)

10、df =>array
11、对行进行循还

for row in eachrow(df)println(row[:close] - row[:open])
end

12、对列进行循 还

for col in eachcol(df)println(col[1])
end

13、综合循还

function iter_each_value(df) #checkrows = eachrow(df)nrow,ncol = size(df)i = 1for row in rowsfor j =1:ncolif rows[i][1] == 926.73println(row)endendi = i+1end
end

dataframe循还效率:找一个相对大的样本
和Array来进行比较:注意,这里没有用列进行优先循还!

function iter_each_value_array(data) nrow,ncol = size(df)for i =1:nrowfor j =1:ncolif data[i,j] == 926.73println("aa")endendend
end

具体速度如下:

julia> data =rand(590000,14)julia> @time iter_each_value_array(data)0.588667 seconds (10.61 M allocations: 305.910 MiB, 6.45% gc time)julia> @time iter_each_value_array(data)0.650769 seconds (10.61 M allocations: 305.910 MiB, 8.23% gc time)

初步看,两者速度差不多。

Julia : DataFrame常见用法相关推荐

  1. Spark15:Spark SQL:DataFrame常见算子操作、DataFrame的sql操作、RDD转换为DataFrame、load和save操作、SaveMode、内置函数

    前面我们学习了Spark中的Spark core,离线数据计算,下面我们来学习一下Spark中的Spark SQL. 一.Spark SQL Spark SQL和我们之前讲Hive的时候说的hive ...

  2. pandas的apply函数常见用法总结

    函数介绍 pandas的apply函数通常用于一些复杂的遍历操作(遍历可迭代对象的同时执行一些自定义函数),它的可定制程度高,而且比itterrows.for等操作效率更高,是我非常喜欢而且常用的一个 ...

  3. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  4. python六:常见数据类型以及常见用法

    bool 布尔值 # 在bool中 0,()(空元祖),[](空列表),{}(空字典),None,""(空字符串) 都是False int 整形 float 浮点型 str 字符串 ...

  5. vue-router 的常见用法

    vue-router 的常见用法 1. 路由重定向 路由重定向指的是:用户在访问地址 A 的时候,强制用户跳转到地址 C ,从而展示特定的组件页面. 通过路由规则的 redirect 属性,指定一个新 ...

  6. 空的宏定义作用及常见用法

    空的宏定义作用及常见用法 我们学习宏定义的第一个概念是,宏定义作为替换作用. 例如: #define SIZE 32 // 接下来代码使用SIZE就相当于32 宏定义是编译器在编译时,将程序中所有SI ...

  7. pyspark dataframe基本用法

    pyspark dataframe基本用法 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on F ...

  8. Arrays常见用法

    Arrays常见用法

  9. sed文本处理常见用法

    sed文本处理常见用法    2011-06-24  TsengYia#126.com http://tsengyia.blog.chinaunix.net/   ################## ...

  10. typeset的常见用法

    [保留] typeset的常见用法 http://www.chinaunix.net 作者:寂寞烈火  发表于:2007-12-16 09:50:34 [发表评论] [查看原文] [Shell讨论区] ...

最新文章

  1. 【第二篇】Volley的使用之加载图片
  2. PHP标记风格,编码规范
  3. 034_ JDK的Enumeration接口
  4. Xamarin.Forms客户端第一版
  5. 亲历腾讯WEB前端开发三轮面试经历及面试题
  6. 软件工程15 个人阅读作业1
  7. linux双屏播放视频,Ubuntu Linux下双屏显示解决方案
  8. 修改Gradle本地仓库的位置 方法
  9. JavaAndroid(2、Android开发环境搭建)
  10. GD32f103介绍第二章
  11. julia集 matlab代码,Mandelbrot集和Julia集的分形图之matlab实现.docx
  12. 喝酒神器摇骰子小程序源码分享以及搭建效果图
  13. 百度技术:“App 优化网络,先从 HTTPDNS 开始” | 原理到实战
  14. PMP项目管理培训总结
  15. 项目管理之项目干系人
  16. 机器学习之十大算法入门
  17. Firefox F12 + Python 3.6 下载B站视频
  18. android烧号工具,让你“爱恨交加”的
  19. 物联卡中心:物联卡被当作流量卡出售违法吗?看完你就知道了!
  20. 【黑苹果】【高分屏】软件修改BIOS中DVMT等设置 Insyde BIOS 联想YOGA系列

热门文章

  1. Oracle_为分区表添加新分区
  2. Domino部署多台notes server
  3. twitter服务器部署系统
  4. 使用windows system backup 裸机恢复域控-windows2008
  5. OpenFaces 3.0 最终版本发布,支持JSF2.0
  6. Symfony2Book16:Symfony2内部03-事件调度
  7. [XA]读书感想:个人对敏捷软件开发宣言的理解
  8. 《剑指offer》第五十八题(左旋转字符串)
  9. [算法]圆圈中最后剩下的数
  10. [No000014B]Office-PPT设置默认打开视图