金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1012|回复: 2

python pandas问题

[复制链接]

6

主题

36

帖子

36

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
发表于 2023-9-26 17:50 | 显示全部楼层 |阅读模式
思路是在一个dataframe中通过两个column值定位,然后修改同一行的另一指定column值用 .at 实现,但发现会将另外不相干的dataframe(结构相同,命名不同)一同改变。试过用.loc,同样问题。
如例子中,stal和stal_a相同,通过对stal操作,但stal_a也被改变。
在两台不同电脑上测试过,结果一样。
烦请解答一下,是代码编写还是其他问题,谢谢!
代码:
from PythonApi import *
import numpy as np
import pandas as pd

#  参数定义区,这里定义的参数可以直接在context对象中获取。--(选择实现)
#def parameter():
#    input_par("myvalues1",5,1,20,1)
#    input_par("myvalues2",10,1,20,1)
stal_a = pd.DataFrame(np.arange(35).reshape((5,7)),columns=['serial','startp','endp','stalp','staln','permutation','original'])
print(stal_a)
stal = stal_a
num_b = 28
stalp = 31
staln = 32
permutation = 33
print(stal_a[(stal_a['serial'] == int(num_b))&(stal_a['stalp'] == stalp)])
stal.at[(stal.serial == int(num_b))&(stal.stalp == stalp), 'staln'] = staln+10
stal.at[(stal.serial == int(num_b))&(stal.stalp == stalp), 'permutation'] = permutation + 10                                    
print(stal_a[(stal_a['serial'] == int(num_b))&(stal_a['stalp'] == stalp)])
print(stal[(stal['serial'] == int(num_b))&(stal['stalp'] == stalp)])

#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    # 在context中保存全局变量
    context.s1 = "SZ000001"   #平安银行股票

    # print("策略启动") #调试打印输出
    file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\14498828\QQ\WinTemp\RichOle\684L{MV85VUQI@V6)I$A3R5.png


回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-27 15:05 | 显示全部楼层

stal = stal_a

你这样操作了。他们已经指向同一个对象了。

截图202309271505311084.png

这2实质就是一个对象的不同名称
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

36

帖子

36

积分

Rank: 1

等级: 新手上路

注册:
2023-9-26
曾用名:
 楼主| 发表于 2023-9-27 15:36 | 显示全部楼层
搞明白了,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 12:24 , Processed in 0.275470 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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