金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1503|回复: 1

请教个python修改符合条件的元素值的问题

[复制链接]

138

主题

303

帖子

303

积分

等级: 免费版

注册:
2022-1-15
曾用名:
发表于 2022-12-31 16:43 | 显示全部楼层 |阅读模式


                            A         B
0 2022-10-01 13:44:23 000
1 2022-10-01 13:44:23 001
2 2022-10-01 13:44:24 550
3 2022-10-01 13:44:24 010
要求: B列>500,则A列的时间加1秒,不符合条件则不修改 请教这个该怎么写呀?我用map,结果把不符合条件的改成nan


def f(x):
    res=str(datetime.datetime.strptime(x,'%Y-%m-%d %H:%M:%S')+datetime.timedelta(seconds=1))
    return res
df1['A']=df1['A'][df1['B']>'500'].apply(f )

回复

使用道具 举报

138

主题

303

帖子

303

积分

等级: 免费版

注册:
2022-1-15
曾用名:
 楼主| 发表于 2022-12-31 16:53 | 显示全部楼层
解决了
df2=df1['A'][df1['B']>'500'].map(f)
df1['A']=df1['A'].mask(df1['B']>'500',df2)   

np.where也行:
df1['A']=np.where(df1['B']>'500', df2, df1['A'])
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 20:28 , Processed in 0.246603 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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