楼主: konkuk2010
3028 11

[源码分享] 时间序列里面如何把字符型数据转换为数值型 [推广有奖]

  • 0关注
  • 2粉丝

本科生

54%

还不是VIP/贵宾

-

威望
0
论坛币
7102 个
通用积分
116.3364
学术水平
6 点
热心指数
8 点
信用等级
3 点
经验
706 点
帖子
8
精华
0
在线时间
182 小时
注册时间
2014-8-11
最后登录
2024-3-6

30论坛币
最近在学习使用时间序列分析交易数据,从网上下载了上证的收盘指数:
'data.frame':        4512 obs. of  2 variables:
$ DATETIME: Date, format: "2001-02-05" "2001-02-06" "2001-02-07" ...
$ CLOSE   : num  2008 1995 1980 1930 1957 ...


然后用xts把他变成时间序列        SH_XTS<-xts(SH,order.by = as.Date(SH[,1])),然后用str命令查看属性,

An ‘xts’ object on 2001-02-05/2019-08-30 containing:
  Data: chr [1:4512, 1:2] "2001-02-05" "2001-02-06" "2001-02-07" "2001-02-08" "2001-02-09" ...
- attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:2] "DATETIME" "CLOSE"
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  
NULL

发现 close数据变成了字符型

           DATETIME     CLOSE     
2001-02-05 "2001-02-05" "2008.032"
2001-02-06 "2001-02-06" "1995.315"
2001-02-07 "2001-02-07" "1979.939"
2001-02-08 "2001-02-08" "1930.138"
2001-02-09 "2001-02-09" "1956.970"
2001-02-12 "2001-02-12" "1961.221"



然后用 as.numeric()命令强制进行转换,SH_XTS$Data.CLOSE<-as.numeric(as.character(SH_XTS$Data.CLOSE))
但是试了很多遍,还是字符型的数据,没有转换成数值型,   哪位大神能帮小弟忙啊,不胜感谢。

关键词:字符型数据 时间序列 数据转换 数值型 字符型
df['close'] = df['close'].apply(lambda x:float(x))

使用道具

藤椅
proneer 发表于 2019-9-4 19:17:42 |只看作者 |坛友微信交流群
data.close=string.atoi(close)

使用道具

板凳
lijianguo531 发表于 2019-9-17 20:02:55 |只看作者 |坛友微信交流群
有能解决的么?我也遇到这个问题

使用道具

报纸
lightknightisme 学生认证  发表于 2019-11-20 16:55:00 |只看作者 |坛友微信交流群
已经解决了吗?我也遇到这个问题,跪求解决方法

使用道具

地板
lightknightisme 学生认证  发表于 2019-11-21 09:36:55 |只看作者 |坛友微信交流群
经过试验,我已经发现原因,如果转之前的数据框里包含日期变量,如2019-11-21,转成xts之后就会变成字符类型
解决方法是先将日期变量单独提取出来设为date_1,并将原数据框里日期变量删掉,
然后再转成xts
newdata<-xts(data,date)

使用道具

7
lightknightisme 学生认证  发表于 2019-11-21 09:37:42 |只看作者 |坛友微信交流群
lijianguo531 发表于 2019-9-17 20:02
有能解决的么?我也遇到这个问题
经过试验,我已经发现原因,如果转之前的数据框里包含日期变量,如2019-11-21,转成xts之后就会变成字符类型
解决方法是先将日期变量单独提取出来设为date_1,并将原数据框里日期变量删掉,
然后再转成xts
newdata<-xts(data,date)

使用道具

8
osstudio 发表于 2019-11-22 11:08:19 |只看作者 |坛友微信交流群
把日期字符串的特殊字符“-”去掉,然后再转换

使用道具

9
lijianguo531 发表于 2019-11-23 12:53:13 |只看作者 |坛友微信交流群
lightknightisme 发表于 2019-11-21 09:37
经过试验,我已经发现原因,如果转之前的数据框里包含日期变量,如2019-11-21,转成xts之后就会变成字符 ...
感谢感谢感谢

使用道具

10
13487055360 发表于 2019-12-9 22:24:13 |只看作者 |坛友微信交流群
楼主请问怎么转呀,怎么单独保存其中的一列呢

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 15:28