找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 264|回复: 7

[求助] 时间字段全部前推100日咋整???

3

主题

23

帖子

23

积分

贫民

积分
23
baijianyun12345 发表于 2021-12-5 22:31:22 | 显示全部楼层 |阅读模式

数据表:

code        date     price


000001.SZ,2020-03-23,12.15
000002.SZ,2020-03-23,24.55
000004.SZ,2020-02-04,19.73
000005.SZ,2020-12-28,2.49
000005.SZ,2020-12-30,2.49
000006.SZ,2020-04-01,4.43
000007.SZ,2020-12-31,6.97
000008.SZ,2020-12-28,2.51
000008.SZ,2020-12-29,2.51

我原来的代码:
df=pd.read_csv("C:/Users/Administrator/Desktop/zz.csv", header=None, names = ['ts_code','trade_date','close'] )
date=df["trade_date"]
date_end = datetime.datetime.strptime(date, "%Y%m%d")
date_start = (date_end + datetime.timedelta(days=-100)).strftime("%Y-%m-%d")
print(date_start)
出现错误:
TypeError: strptime() argument 1 must be str, not Series
一直没照到好的解决办法

回复

使用道具 举报

3

主题

23

帖子

23

积分

贫民

积分
23
baijianyun12345  楼主| 发表于 2021-12-6 16:22:44 | 显示全部楼层

总算过了,真的谢谢了,搞了好几天,还是学得不深,以后有问题还能请教你吗!
回复 支持 1 反对 0

使用道具 举报

0

主题

921

帖子

921

积分

圣骑士

积分
921
sheeboard 发表于 2021-12-6 15:14:03 | 显示全部楼层
参考
  1. df=pd.read_csv('zz.csv',header=None,names=['ts_code','trade_date','price'])
  2. df['trade_date']=pd.to_datetime(df['trade_date'])
  3. df['date_start']=df['trade_date']-pd.Timedelta(days=100)
  4. df.columns=['ts_code','date_end','price','date_start']
  5. df=df[['ts_code','date_start','date_end','price']]
复制代码
Screenshot from 2021-12-06 15-13-35.png
回复 支持 1 反对 0

使用道具 举报

0

主题

36

帖子

36

积分

贫民

积分
36
Annadie 发表于 2021-12-6 10:59:59 | 显示全部楼层
strptime() argument 1 must be str, not Series
可能是函数不能整列处理
只能处理字符串

可以写一个for i in df.index:
每行处理,i 是 每行的index
回复 支持 反对

使用道具 举报

3

主题

23

帖子

23

积分

贫民

积分
23
baijianyun12345  楼主| 发表于 2021-12-6 11:40:56 | 显示全部楼层
谢谢,我是新手,这么弄这么错,那么弄那么错,才发出来求助,怎么弄啊?
回复 支持 反对

使用道具 举报

3

主题

23

帖子

23

积分

贫民

积分
23
baijianyun12345  楼主| 发表于 2021-12-6 12:05:03 | 显示全部楼层
Annadie 发表于 2021-12-6 10:59
strptime() argument 1 must be str, not Series
可能是函数不能整列处理
只能处理字符串

谢谢,我是新手,这个论坛怎么玩的还不是很清除,这么弄这么错,那么弄那么错,才发出来求助,怎么弄啊,能帮我改改代码吗,你上面写的办法我试了,还是原来那个错误!!!
回复 支持 反对

使用道具 举报

0

主题

921

帖子

921

积分

圣骑士

积分
921
sheeboard 发表于 2021-12-6 16:42:09 | 显示全部楼层
baijianyun12345 发表于 2021-12-6 16:22
总算过了,真的谢谢了,搞了好几天,还是学得不深,以后有问题还能请教你吗! ...

这个书上有例子的,pandas time series有自己的处理方法,对象需要是datetime类型,载入数据的类型是object,所以需要先转类型再处理,尽量用pandas自带的方法,如果要用自己的函数,是用apply,map,applymap function函数,当然效率是不如pandas自带的方法的。
回复 支持 反对

使用道具 举报

3

主题

23

帖子

23

积分

贫民

积分
23
baijianyun12345  楼主| 发表于 2021-12-6 17:24:18 | 显示全部楼层
sheeboard 发表于 2021-12-6 16:42
这个书上有例子的,pandas time series有自己的处理方法,对象需要是datetime类型,载入数据的类型是obje ...

是的,我转成STR,越搞越错。还是知识点不够,以前就知道HELLO  WORLD,呵呵,学起来是有点吃力。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表